我的拼圖:作爲一個PHP newby我試圖從正則表達式的字符串中提取一些數據,但我找不到正確的語法。從字符串,正則表達式中提取變量?
該字符串的內容被作爲來自網站的幾個圖像的html,我希望最終輸出爲3個獨立變量:「$ Number1」,「$ Number2」和「$ Status」。
輸入字符串$ HTML的內容的一個例子:
<div id="system">
<img alt="2" height="35" src="/images/numbers/2.jpg" width="18" /><img alt="2" height="35" src="/images/numbers/2.jpg" width="18" /><img alt=".5" height="35" src="/images/numbers/point5.jpg" style="margin-left: -4px" width="26" /><img alt="system statusA" height="35" src="/images/numbers/statusA.jpg" width="37" /><img alt="2" height="35" src="/images/numbers/2.jpg" width="18" /><img alt="1" height="35" src="/images/numbers/1.jpg" width="18" /><img alt=".0" height="35" src="/images/numbers/point0.jpg" style="margin-left: -4px" width="26" />
</div>
其可出現在該字符串中的可能值爲:
- 0.jpg
- 1.JPG
- 2.jpg
- 3.jpg
- 4.jpg
- 5.JPG
- 6.JPG
- 7.JPG
- 8.JPG
- 9.jpg
- point0.jpg
- point5.jpg
- statusA.jpg
- statusB.jpg
- statusC.jpg
- statusD.jpg
- statusE.jpg
- statusF.jpg
結果應該是變量:
- 「數字1」(XX.X)基於前兩個數字(0 -9)和.0或.5
- 根據狀態
- 基於最後兩個數字(0-9)和.0或.5的「Number2」(XX.X)的「Status」(statusX)
到目前爲止的代碼:
$regex = '\balt='(.*?)';
preg_match($regex,$html,$match);
var_dump($match);
echo $match[0];
也許我不得不這樣做在多個步驟或使用其他功能,誰可以幫幫我嗎?
謝謝,這個工程。用|作爲分隔符返回:'1 | 3 | .5 | statusB | 8 | 5 | .0 |'。但我怎樣才能得到這個值到一個字符串?我需要使用爆炸將它進一步分成3個字符串。 – JERO79
解決方法使用:foreach($ xpath-> query('// img/@ alt')as $ node){ $ input [] = $ node-> nodeValue; } – JERO79