HTMLペーサーが必要です。プレーンテキストを見つけて読み取り、部分文字列を選択します。ここでは、次の例を示しDOMXpath
ます。
$doc = DOMDocument::loadHTML($html);
$xp = new DOMXPath($doc);
$chars50 = $xp->evaluate('substring(normalize-space(//body),1,50)');
デモ:
文字列(50)"This economy car is great value for money and with"
ここでUTF-8でエンコードされた文字列を取得することに注意してください。たとえば、正規表現(単語を切り取るのに役立つ場合があります)を使用して、これを自分で行うこともできます。
# load text from HTML
$text = DOMDocument::loadHTML($html)->getElementsByTagName('body')->item(0)->nodeValue;
# normalize HTML whitspace
$text = trim(preg_replace('/\s{1,}/u', ' ', $text));
# obtain the substring (here: UTF-8 safe operation, see as well mb_substr)
$chars50 = preg_replace('/^(.{0,50}).*$/u', '$1', $text);
デモ
HTMLパーサーの代わりに使用している場合はstrip_tags
、さまざまなエンコーディングを自分で処理する必要があります。元の文字列にはすでにUnicode置換文字を示す疑問符が付いているので、すでに中断されたデータを処理していると思います。安全ではないDOMDocument
代わりに、のように再表示するライブラリを使用することをお勧めしstrip_tags
ます(PHPの警告を参照してください)。マニュアルページ)。