2015-07-21 55 views
0

我有這個網站腓簡單的HTML DOM解析器查找字符串的任何字符

<div class="price-box"> 

       <p class="old-price"> 
      <span class="price-label">This:</span> 
      <span class="price" id="old-price-326"> 
       8,69 €    </span> 
     </p> 

        <p class="special-price"> 
      <span class="price-label">This is:</span> 
      <span class="price" id="product-price-326"> 
       1,99 €    </span> <span style="">/ 6.87 </span> 
     </p> 


    </div> 

我需要得到「1,99€」,但ID爲「產品價格-326」是生成隨機數。如何找到'product-price- *'?我想

foreach($preke->find('span[id="product-price-[0-9]"]') as $div) 

foreach($preke->find('span[id="product-price-"]') as $div) 

,但它不工作。

+4

嘗試'$ preke-> find('span [id^=「product-price - 」]')'。 – D4V1D

+0

重複? http://stackoverflow.com/questions/13525124/simple-html-dom-wildcard-in-attribute – Webice

+0

它的工作。謝謝D4V1D – user2289809

回答

1

我不知道什麼$preke是的,但如果它是支持正確的類選擇一個DOM選擇器可以使用

$preke->find('span[id^="product-price"]') 

$preke->find('span[id*="product-price"]') 

^=告訴它來尋找元素具有以「產品價格」開頭的ID並且*=告訴其尋找具有包含「產品價格」的ID的元素。

+0

感謝您的解釋。有用。 – user2289809

0

爲什麼不使用class

echo $preke->find('.special-price', 0)->find('.price', 0)->plaintext; 

這將讓你1,99 €

+0

謝謝,它也有效,但現在我得到了:「這是:1,99€/ 6.87」 – user2289809

1

嘗試像這可能是作品

foreach($preke->find('span[id^="product-price-"]') as $div) { /* Code */ }