2011-01-16 7 views
7

私はHTMLの文字列を持っています。その中にリンクがあるかどうかを確認したい場合は、それらを抽出して配列に入れます。セレクタの簡潔さでjQueryでこれを行うことができますが、私はPHPで使用する正しいメソッドを見つけることができません。PHPの文字列の操作:hrefを抽出する

たとえば、文字列は次のようになります。

<h1>Doctors</h1> 
<a title="C - G" href="linkl.html">C - G</a> 
<a title="G - K" href="link2.html">G - K</a> 
<a title="K - M" href="link3.html">K - M</a> 

私のようなものに見えるの配列に変換することができますどのように(PHPで):

[1]=>"link1.html" 
[2]=>"link2.html" 
[3]=>"link3.html" 

おかげで、 イアン

+0

が重複する可能性のようなものを(strip_tagsすることができますhttp://stackoverflow.com/questions/3820666/grabbing-the-href-attribute-of-an-a-element) – j08691

答えて

17

から派生したとしてあなたが使用することができ、その後、あなたはその選択システムは、jQueryのCSSとaswellと同じであるとしても問題にこれを使用しないことができるはずのjQueryを使用することができますXMLやHTMLを解析するPHPのDOMDocumentライブラリ次のようなものが、href属性をHTML文字列から取得するためには、このトリックを行う必要があります。

$html = '<h1>Doctors</h1> 
<a title="C - G" href="linkl.html">C - G</a> 
<a title="G - K" href="link2.html">G - K</a> 
<a title="K - M" href="link3.html">K - M</a>'; 

$hrefs = array(); 

$dom = new DOMDocument(); 
$dom->loadHTML($html); 

$tags = $dom->getElementsByTagName('a'); 
foreach ($tags as $tag) { 
     $hrefs[] = $tag->getAttribute('href'); 
} 
1

あなたの質問は分かりにくいですが、私はPHP DOMパーサがほしいと思っています。単純なDOMパーサーをここに見つけることができます:http://simplehtmldom.sourceforge.net/と小さな使用例eは次のとおりです。

$array = array(); 
foreach($html->find('a') as $a) 
{ 
    $array[] = $a->href; 
} 

あなたはjQueryのCSS

-1

形式は常に同じであれば、uはおそらく爆発の組み合わせでそれを整理し、[要素のhref属性をつかむ]の

$html="<span class="field-content"><a href="http://url_to_extract">whatever</a></span>" 


$href=end(explode('"',strip_tags($html)));