背景のリンクを取得しようとしています
<div class="mine" style="background: url('http://www.something.com/something.jpg')"></div>
私は find('div.mine') を使用しています
$link = find('div.mine');
$link は、すべての
リンクのみを返すように解析するにはどうすればよいですか?
背景のリンクを取得しようとしています
<div class="mine" style="background: url('http://www.something.com/something.jpg')"></div>
私は find('div.mine') を使用しています
$link = find('div.mine');
$link は、すべての
リンクのみを返すように解析するにはどうすればよいですか?
その構文は完全に正しくありません。あなたはやっていますが、代わりに$link = find('div.mine');
すべきです。$link = $yourHTML->find('div.mine');
最初にクラス名を持つすべての div を取得し、mine
それらをループして、スタイル属性を取得します。これで、次のような文字列が得られます。
background: url('http://www.something.com/something.jpg')
次に、CSS パーサー (推奨される方法) または正規表現を使用して、その文字列から URL 部分だけを取得できます。
if(preg_match('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $link, $matches)) {
$image_url = $matches[0];
}
完全なコード:
$html = file_get_html('file.html');
$divs = $html->find('div.mine');
foreach ($divs as $div) {
$link = $div->style;
}
if(preg_match('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $link, $matches)) {
$image_url = $matches[0];
}
echo $image_url;
出力:
http://www.something.com/something.jpg
正規表現パターンに一致する URL は、Wordpress のmake_clickable
関数のwp-includes/formatting.php
. 完全な実装については、この投稿を参照してください。
substr()
関数でテキストを抽出してみてください