1

我有一些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”变量值之后会有奇怪的符号。

4

1 回答 1

0

好的,我想通了,要摆脱这些不可见的无效字符,我所要做的就是:

$value = preg_replace("/[^a-zA-Z0-9 %():\$.\/-]/",' ',$value);

更重要的是,只需用空格或空白替换任何无效的字符。就我而言,我使用了空间,因为它似乎有些空间是无效的。

于 2013-04-04T04:01:15.573 回答