删除每个文件中的部分文本

时间:2017-02-18 17:59:11

标签: php

我需要删除以</div></div></div>开头的部分文本以及临时目录中每个文件中的所有内容。 文字结构基本相同:

<!DOCTYPE html>
<head>

blah blah lots of text....

</div></div></div>

blah blah lots of text....

</div>

</html>
我做了什么:

$files = scandir(__DIR__ . "/temp/");
$files = array_diff($files, array('.', '..'));

foreach($files as $file) {

    $text_file = file_get_contents(__DIR__ . "/temp/".$file);

    foreach($text_file as $txfile) {

        $txfile = strstr($txfile, '</div></div></div>', true);
        echo $txfile;
    } 
}

Warning: Invalid argument supplied for foreach() 

并尝试这种方式

$files = scandir(__DIR__ . "/temp/");
$files = array_diff($files, array('.', '..'));

foreach($files as $file) {

    $text_file = file_get_contents(__DIR__ . "/temp/".$file);

    for($i=0;$i<count($text_file);$i++)
    {

        $text_file = strstr($text_file[$i], '</div></div></div>', true);
        echo $text_file;
    } 
}

甚至尝试使用strstr的{​​{1}}个文件,但仍然没有结果。

1 个答案:

答案 0 :(得分:1)

$text_file = file_get_contents(__DIR__ . "/temp/".$file);中,$text_file将是string而不是array,因此使用foreach会引发错误。 你可以尝试

foreach($files as $file) {

    $text_file = file_get_contents(__DIR__ . "/temp/".$file);

        $txfile = strstr($text_file, '</div></div></div>', true);
        echo $txfile;
}