私はあなたの問題についていくつかの詳細を知らないので、私の答えは適切ではないかもしれません。解析する必要のあるコンテンツのサイズに基づいて、これはオプションではないと判断できます。また、質問から、htmlコンテンツがどこに配置されるかが明確ではないため、DOM解析を使用しないこのソリューションを作成しました。
考えられる解決策は、配列で解析する行を取得することです。その後、配列をフィルタリングして、ルールに一致しない行を結果から削除できます。
サンプルは次のようになります。
//this is the content
$text = 'Title: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Snippet: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Category: Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
//get the lines from your input as an array.. you could acheive this in a different way if, for example, you are reading from a file
$lines = explode(PHP_EOL, $text);
// apply a cusom function to filter the lines (remove the ones that don't match your rule)
$results = array_filter($lines, 'test_content');
//show the results
echo '<pre>';
print_r($results);
echo '</pre>';
//custom function here:
function test_content($line)
{
//case insensitive search, notice stripos;
// type strict comparison to be sure that it doesn't fail when the element is found right at the start
if (false !== stripos($line, 'Snippet'))
{
return true;
}
return false;//these lines will be removed
}
そのコードは、$results配列の2行目である1つの要素のみを返します。
あなたはここでそれが働いているのを見ることができます:http://codepad.org/220BLjEk