2017-01-17 6 views
-2

続い私はそこから私はいくつかのテキストを抽出したい、私のHTMLコンテンツでこれをしました:するpreg_match強いタグ説明

<p> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract including "<br>" <br /><br /> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract<br /><br /> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract ... 

あなたには、いくつかの説明に続いて、強いタグが常にある見ることができるように。

私はこれをpreg_matchまたはpreg_match_allでどのように達成できるか、またはここでdomcrawlerを使用する方が良いと思いますか?

ベスト、 クリスチャン

+1

Domが最適です。 –

+0

結果を表示してください。タグを抽出するかどうかを指定しますか?あなたは改行を保ちたいですか?あなたはインデントを保持したいですか? – Toto

答えて

0

これを試してみて、

$str = '<p> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract including <br> <br /><br /> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract<br /><br /> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract ...'; 
$tname = 'strong'; 
$pattern = "/<$tname ?.*>(.*)<\/$tname>/"; 
preg_match_all($pattern, $str, $matches); 
print_r($matches[1]); 
+0

あなたはそれを試しましたか?要求通りに「
を含む抽出したいテキスト」を抽出しません。 – Toto

0
$string = '<p> <strong>Text I want to extract</strong> 
<br />Text I want to extract including "<br>" <br /><br /> 
<strong>Text I want to extract</strong>  
<br />Text I want to extract<br /><br />  
<strong>Text I want to extract</strong>  
<br />Text I want to extract ...'; 

$pattern = "#</strong\b[^>]*>(.*?)<\s*?strong\b[^>]*>#s"; 
preg_match_all($pattern, $str, $matches); 
print_r($matches); 
+0

答えをありがとうが、私はまた、強力なタグ間のテキストを抽出したいと思います。 – user7430054

+0

編集されたコードを見つけてください – mith

+0

申し訳ありませんが、私は強力な終了タグの間のテキストを意味しました。たとえば


」または「私は

を抽出したい
テキスト」「
テキストは、私は、以下を含む抽出したいです」。誤解をおかけして申し訳ありません。私は抽出したいテキスト1テキスト2
user7430054

0

同じ強いタグ内の文字列を取得するにはドムを試してみては他のタグのために行うことができます。

<?php 
$str='<p> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract including "<br>" <br /><br /> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract<br /><br /> 
    <strong>Text I want to extract</strong> 
    <br />Text I want to extract ... 
    </p> 
'; 

$dom=new DomDocument(); 

$dom->loadHTML($str); 
$books = $dom->getElementsByTagName('strong'); 
foreach ($books as $book) { 
    echo $book->nodeValue, PHP_EOL; 
} 

DEMO HERE