2012-01-13 13 views
3

私はPHPの単純なHTML DOMパーサーを使用しています。私が画像を解析したいページでは、 'src'属性は 'data-src'に置き換えられます。どちらか私はこのようにそれを行うことを試みたが、それは動作しませんPHP単純なHTML DOMパーサー - 要素のハイフネーションされた属性値を取得

$elimage = $offer->find('div.photo', 0); 
$im = $elimage->last_child('a'); 
$img = $im->last_child('img'); 
$item['image'] = $img->src; 

$elimage = $offer->find('div.photo', 0); 
$im = $elimage->last_child('a'); 
$img = $im->last_child('img'); 
$item['image'] = $img->data-src; 
私は、次のコードを使用した画像のパスを取得しようとするのであれば、それは何も返さないだろう

誰かがそれがカスタム属性の値を取得できるかどうかを知っていますか?もしそうなら、どのように達成できますか?

ありがとうございます!

+1

から取ら

$img->data-src; 

使用

$img->{'data-src'}; 

正規表現によって、srcが$ IMGを形成入手し –

+0

正規表現上の手掛かりはありますか? – cycero

+0

ご協力ありがとうございます。次の正規表現 '$ \ b(https?| ftp | file)でソースを取得します:// [-A-Z0-9 +&@#/%?=〜_ |!:、;;] * [-A -Z0-9 +&@#/%=〜_ |] $ i '。彼らは絶対URLを持っていました。 – cycero

答えて

1
<?php 
$str= "<a data-src='http://google.com'>Hello</a>"; 
$var=preg_split("/data-src=\'/",$str); 
//echo $var[1]; 
$var1=preg_split("/\'/",$var[1]); 
echo $var1[0]; 
?> 

あなたは、これがまた...

0

ありがとうございました!

私は次の関数を使用して文字列からURLをつかん:

function checkURL($str) { 
    $regex = '$\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$i'; 

    preg_match_all($regex, $str, $result, PREG_PATTERN_ORDER); 
    $A = $result[0]; 

    foreach($A as $a) { 
     $retval .= $a; 
    } 

    return $retval; 
} 

私が見つけたURL-sが絶対的だったし、1つのURLのみが与えられた文字列でした。

ヒント@Rajat Singhalをもう一度おねがいします!

3

とにかく、私はこの種の問題に対する解決策を見つけると、ここでつまずくとしていた使用することができ、突然アイデアを得ました。

ただ、最初の変数にそれを置く:

$dataSrc='data-src'; 
$item['image'] = $img->$dataSrc; 
関連する問題