php 匹配<?php正则表达式
时间: 2023-11-05 22:17:27 浏览: 87
可以使用以下正则表达式来匹配 `<?php`:
```
/<\?php/
```
其中,`<`、`?`、`p`、`h`、`p` 分别表示字符 `<`、`?`、`p`、`h`、`p`,`\` 是转义符,用于将后面的字符 `\?` 转义为字符 `?`,最后的斜杠 `/` 表示正则表达式的结束。在 PHP 中使用时,可以这样写:
```php
$pattern = '/<\?php/';
$str = '<?php echo "Hello, world!"; ?>';
if (preg_match($pattern, $str)) {
echo 'Match found!';
} else {
echo 'Match not found.';
}
```
相关问题
(?:http://)?在PHP正则表达式中是什么啥意思
在 PHP 正则表达式中,(?:pattern) 是一个非捕获分组,用于分组但不会被记忆或捕获。这意味着,正则表达式引擎会将它视为一个整体,但不会创建一个单独的捕获组。这对于需要将多个模式组合在一起,但只需要捕获其中一部分的情况非常有用。例如,(?:http://)?www\.example\.com 可以匹配 www.example.com 或 http://www.example.com,但只会捕获 www.example.com 部分。
如何在php中获取如下代码中的自定义属性: <td> <input type="checkbox" value="<?php echo $item['id']; ?>" data-acat="<?php echo $item['avatar']; ?>" name="dels[]"> </td>
可以使用正则表达式和 preg_match_all 函数来获取 HTML 中的自定义属性。以下是一个示例代码:
```php
$html = '<td><input type="checkbox" value="<?php echo $item[\'id\']; ?>" data-acat="<?php echo $item[\'avatar\']; ?>" name="dels[]"></td>';
preg_match_all('/<input[^>]*?data-acat="([^"]*)"[^>]*?>/i', $html, $matches);
$customAttr = $matches[1][0];
echo $customAttr; // 输出 $item['avatar']
```
在上面的代码中,首先定义了一个 HTML 字符串,其中包含一个 `<input>` 元素,该元素有一个名为 `data-acat` 的自定义属性。然后,使用正则表达式和 preg_match_all 函数匹配 HTML 字符串中的自定义属性,并将匹配结果保存在 `$matches` 数组中。最后,从 `$matches` 数组中获取匹配结果,并输出结果。
阅读全文