$file = 'test.php';
的index.php
<div class="test">
<p>It test</p>
<form class="FormTest">
<input type="text" name="rel">
</form>
<form class="FormTest2">
<input type="text" name="rel">
</form>
</div>
在下一步中我们获取内容index.php并删除form
:
ob_start(); // start output buffer
include $file;
$template = ob_get_contents(); // get contents of buffer
ob_end_clean();
$template = preg_replace('/<form.*?class="FormTest".*?>.*?<\/form>/',
'', $template );
但它不起作用且form.FormTest
没有删除......
请告诉我哪里有问题?
答案 0 :(得分:2)
试试这个
ob_start(); // start output buffer
include $file;
$template = ob_get_contents(); // get contents of buffer
$template = preg_replace('/<form.*?class="FormTest".*?>.*?<\/form>/',
'', $template );
ob_end_clean();
只有ob_end_clean();
应该在最后
或者你也可以这样做
ob_get_clean()
基本上同时执行ob_get_contents()
和ob_end_clean()
ob_start(); // start output buffer
include $file;
$template = ob_get_clean();
$template = preg_replace('/<form.*?class="FormTest".*?>.*?<\/form>/','', $template );
echo $template ;
答案 1 :(得分:0)
您可能需要在正则表达式中使用带有/ m的多线修改器:
$template = preg_replace('/<form.*?class="FormTest".*?>.*?<\/form>/m', '', $template );
答案 2 :(得分:0)
尝试将preg_replace代码更改为以下内容:
$template = preg_replace('/<form.*?class="FormTest.*?form>/s','', $template );
将HTML作为字符串放入$ template时,它对我有用。
答案 3 :(得分:0)
你的点也需要匹配换行符,所以添加s-modifier
$template = preg_replace('/<form.*?class="FormTest".*?>.*?<\/form>/s', '', $template );
答案 4 :(得分:-1)
以下代码应该可以使用
$template = 'this is just a test<form class="FormTest">form will be removed</form>...';
$template = preg_replace('/<form.*?class="FormTest".*?>.*?<\/form>/', '', $template);
echo $template;