PHP-使用preg_替换为file_get_内容

PHP-使用preg_替换为file_get_内容,php,preg-replace,file-get-contents,Php,Preg Replace,File Get Contents,以上代码正常工作: <?php function clearPage($content, $class) { $arr = array( '@^(.*?)<div class="'.$class.'">(.*?)</div>(.*?)$@i' => '<div class="'.$class.'">$2</div>' ); return preg_replace(array_k

以上代码正常工作:

<?php

function clearPage($content, $class) {
$arr = array(
            '@^(.*?)<div class="'.$class.'">(.*?)</div>(.*?)$@i' => '<div class="'.$class.'">$2</div>'
            );

    return preg_replace(array_keys($arr), array_values($arr), $content);


}


$class = "something";
$content = "31xu1823y8<div class="something">Wanted</div>912u38u3"
$result = clearPage($content, $class);
echo $result;
?>

使用正则表达式或字符串匹配是解析HTML最糟糕的方法

您需要使用DOM:

或者像这样的第三方dom库:

为什么不在数百个类似的问题中选择一个,并给出同样不具体的答案?我认为我的解决方案是可以的,但问题是,我认为我没有从页面中获取html代码,因此它不能替代任何内容。我猜你会在这个问题->中找到答案,是的,如果你从
input.php
中阅读,您将不会得到呈现的HTML,而是只包含HTML片段的PHP源代码。(正则表达式问题:DOTALL标志。)
<div class="something">Wanted</div>
$class = "something";
$content = file_get_contents('index.php');
$result = clearPage($content, $class);
echo $result;

This outputs all the webpage! Why!?