我的拼图:作为一个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