我遇到了一些regex
声明的问题。我不确定为什么会这样做,但我认为它可能与字符编码有关。
所以我使用curl从网站接收页面内容。然后我使用domXPath
查询来获取某个元素,然后从该元素中获取其内容,然后从该内容中执行regex
语句。但是regex
语句不起作用,我不知道为什么。
这是我从元素中收到的:
X: asdasdfgdgdrrY: dfgdfgfgZ: ukuykyukjghj
a B 7dd.
现在,当我尝试将其与此代码匹配时:
/X: (?P<x>.*)Y: (?P<y>.*)Z: (?P<z>.*)\s*(?P<a>[a-zA-Z]+) (?P<b>[a-zA-Z]+) (?P<c>[0-9]+)dd/
我在Dreamweaver中对此进行了测试并且匹配,因此我不知道它不会在线
此外,我收到的网页内容为utf-8,
我尝试使用
转换内容以删除utf-8字符iconv('utf-8', 'ISO-8859-1//IGNORE', $td->item(0)->nodeValue);
如果我不删除utf-8字符,则在'a','b'和'c'变量值后面会有奇怪的Á
符号。
答案 0 :(得分:0)
好的,我想通了, 所有我必须做的就是摆脱这些看不见的无效字符:
$value = preg_replace("/[^a-zA-Z0-9 %():\$.\/-]/",' ',$value);
预先更换任何无效的字符,空格或空格。在我的情况下,我使用了空格,因为它看起来有些空格是无效的。