2012-08-26 62 views
0

我正在使用drupal並且有一個包含html負載的變量。我想要做的是選擇出現在該html中的第一個圖像,捕獲圖像src,以便我可以用其他方式操作圖像,然後從html中刪除所有圖像。我現在應該有一個包含捕獲的第一個圖像源的變量,以及一個包含html減去任何圖像的變量。從字符串中移除<img>標記並將其放置在變量中img src在字符串中的位置可以變化

第一圖像放到我已經嘗試了變數 -

$texthtml = $node->teaser; 
preg_match('/<img.+src=[\'"](?P<src>.+?)[\'"].*>/i', $texthtml, $image); 
echo $image['src']; 

這工作得很好,只要圖像碼遵循以下邏輯 - 「IMG SRC ..」 但是感謝我的內容管理系統,一些img標籤不要在'img'之後直接放置'src',例如 - 'img class ..'。在這種情況下,上面的代碼只會採用'img src ..'的特定順序的第一個圖像。我如何在img代碼可以按任意順序執行此操作?

爲了然後從我成功使用原始字符串中刪除圖像 -

$stripped = $node->teaser; 
$stripped = preg_replace("/<img[^>]+\>/i", "(image) ", $stripped); 
echo $stripped; 

謝謝!

+0

請重新編輯你的問題,因爲它是不明確的,如果你真的不想要提取標籤(這將更有意義,我認爲)的SRC一部分還是真的想剛剛擺脫'img'部分 –

+0

不要使用正則表達式來解析html! – Eric

+0

WebnetMobile.com - 我已重新編輯該問題,道歉。埃裏克,我該怎麼做呢?謝謝! – Rob

回答

0

使用以下,

preg_match_all('/\<img(.*?)\/\>/', $texthtml, $matches); 
+0

謝謝阿馬爾!這給了我一個看起來像這樣的數組 - Array([0] => Array([0] =>(image here)[1] =>如何從這個圖像中獲取圖像?還有對Eric的評論感到好奇以上大約不使用正則表達式..謝謝! – Rob

相關問題