如何删除html元素?

时间:2016-04-05 10:50:04

标签: php

我正在尝试获取文件的内容并预览前50个单词,不包括标题,而且我遇到了障碍。

$getPage = $_SERVER['QUERY_STRING'];
    $page = "news/" . $getPage . ".php";

    $directory = 'news/';
    $scanned_directory = array_diff(scandir($directory, 1), array('..', '.'));

    if (file_exists($page)) {
    include $page;
} else {
    foreach ($scanned_directory as $value) {
        $file = file_get_contents('news/' . $value);
        $less_words = implode(' ', array_slice(explode(' ', $file), 0, 50));
        $result = preg_replace('/\<.*?\>|\s*/', '', $less_words);
    echo '<p>$result ...<br> <a href="$url">Read more</a></p>';
/* TO ADD: URL variable */
    }
}

我遇到的问题是当回显$less_words输出的文本是正确的,但是我显示的2个示例文件中的<h1></h1>标记已经过格式化。但是当回显$result时,页面上输出的文本为$result Read more

2 个答案:

答案 0 :(得分:1)

更改

    echo '<p>$result ...<br> <a href="$url">Read more</a></p>';
/* TO ADD: URL variable */

echo '<p>'.$result.' ...<br> <a href="'.$url.'">Read more</a></p>';
/* TO ADD: URL variable */

答案 1 :(得分:1)

php函数http://php.net/manual/en/function.strip-tags.php可以工作......

$file = file_get_contents('news/' . $value);
$file = strip_tags($file);
$less_words = implode(' ', array_slice(explode(' ', $file), 0, 50));
echo '<p>'.$less_words.'...<br> <a href="'.$url.'">Read more</a></p>';