Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-搜索和替换中间的内容_Php_Regex_Replace - Fatal编程技术网

PHP-搜索和替换中间的内容

PHP-搜索和替换中间的内容,php,regex,replace,Php,Regex,Replace,我想搜索特定的字符串/模式并将其删除。该模式从以下内容开始: <!DOCTYPE 我想移除它,以及介于两者之间的任何东西。它也不应该区分大小写 我尝试了str_replace()函数,但它没有删除中间内容 感谢您的帮助。这是preg\u replace的一个用例。正则表达式是我们的朋友: $txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt); $txt=preg#u replace(“##sim”,”,$txt);

我想搜索特定的字符串/模式并将其删除。该模式从以下内容开始:

<!DOCTYPE 
我想移除它,以及介于两者之间的任何东西。它也不应该区分大小写

我尝试了
str_replace()
函数,但它没有删除中间内容


感谢您的帮助。

这是preg\u replace的一个用例。正则表达式是我们的朋友:

$txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt);
$txt=preg#u replace(“##sim”,”,$txt);
此处的
(.*?
与中最短的字符串匹配。而
是替代品


但是你确定
]>
是寻找终止符的正确字符串吗?

请展示你的尝试…字符串跨越多行吗?@Arvin:是的,字符串跨越多行。@Stefan:我尝试了“str_replace”(“,”,“,$txt)”删除内容,但仍然保留了中间的内容。谢谢Mario的帮助。基本上,我正在抓取一个XML文件,其中包含“@MercuryTerminal:啊,好的。我不确定它是用于DTD还是仅用于HTML DOCTYPE声明。--无论如何,如果您有时间并且想了解更多关于regexps的有用性,请尝试或使用这里的一个好工具:谢谢。现在就开始阅读。=)
$txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt);