0

ここでは、URL のプレビューを作成しています。どのショー

  1. URL タイトル
  2. URL の説明 (タイトルは入れないでください)

これが私の試みです。

<?php
function plaintext($html)
    {
        $plaintext = preg_replace('#([<]title)(.*)([<]/title[>])#', ' ', $html);

        // remove title 
            //$plaintext = preg_match('#<title>(.*?)</title>#', $html);

        // remove comments and any content found in the the comment area (strip_tags only removes the actual tags).
        $plaintext = preg_replace('#<!--.*?-->#s', '', $plaintext);

        // put a space between list items (strip_tags just removes the tags).
            $plaintext = preg_replace('#</li>#', ' </li>', $plaintext);     

            // remove all script and style tags
        $plaintext = preg_replace('#<(script|style)\b[^>]*>(.*?)</(script|style)>#is', "", $plaintext);

        // remove br tags (missed by strip_tags)
            $plaintext = preg_replace("#<br[^>]*?>#", " ", $plaintext);

            // remove all remaining html
            $plaintext = strip_tags($plaintext);

        return $plaintext;
    }
        function get_title($html) 
    {
        return preg_match('!<title>(.*?)</title>!i', $html, $matches) ? $matches[1] : '';
    }
        function trim_display($size,$string)
    {
        $trim_string = substr($string, 0, $size);

        $trim_string = $trim_string . "...";
        return $trim_string;
    }

$url = "http://www.nextbigwhat.com/indian-startups/";
$data = file_get_contents($url);
//$url = trim_url(5,$url);      
    $title = get_title($data);
        echo "title is ; $title";   
    $content = plaintext($data); 
    $Preview = trim_display(100,$content);
echo '<br/>';
echo "preview is: $Preview";

?>

URL タイトルが正しく表示されます。しかし、タイトルの内容を説明から除外すると、それも表示されます。

$plaintext = preg_replace('#([<]title)(.*)([<]/title[>])#', ' ', $html);タイトルをプレーンテキストから除外する用途があります。

正規表現は、タイトル コンテンツを除外しないイベントとして正しいです。

ここで何が問題なのですか?

ここで得られる出力は次のとおりです。

title is ; Indian Startups Archives - NextBigWhat.com
preview is: Indian Startups Archives : NextBigWhat.com [whatever rest text]...

実際、タイトル部分に表示されるテキストは、プレビューに再び表示されることはありません。そのため、それを除外して残りのテキストをプレビューに表示したいのです。

4

1 に答える 1