Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用PHP在XML文件中查找字符串_Php_Xml - Fatal编程技术网

尝试使用PHP在XML文件中查找字符串

尝试使用PHP在XML文件中查找字符串,php,xml,Php,Xml,我有一个KML文件,我已经将其转换为XML,我可以毫无问题地从中输出任何信息。但是我的“description”标记有一个CDATA块,其中包含HTML代码。 如果“description”标记包含“一些HTML代码”,我将使用PHP来回显一些内容。但是在我的XML文件中,“td”标记(如我所说,位于CDATA块中)由两个换行符分隔,因此我的if语句不起作用 我的PHP: $a=array(); foreach($xml->Document->Folder->Placemark

我有一个KML文件,我已经将其转换为XML,我可以毫无问题地从中输出任何信息。但是我的“description”标记有一个CDATA块,其中包含HTML代码。 如果“description”标记包含“一些HTML代码”,我将使用PHP来回显一些内容。但是在我的XML文件中,“td”标记(如我所说,位于CDATA块中)由两个换行符分隔,因此我的if语句不起作用

我的PHP:

$a=array();
foreach($xml->Document->Folder->Placemark as $casa) {
    if(strpos($casa->description,'<td>Mob_Reduzi</td>**WHAT TO PUT HERE**<td>0</td>') !== false){
       echo "BLA BLA BLA"
    }
}
$a=array();
foreach($xml->Document->Folder->Placemark as$casa){
if(strpos($casa->description,'Mob_Reduzi**WHAT TO PUT HERE**0')!==false){
回音“呜呜呜呜”
}
}
我尝试过在这些标记之间使用换行Unicode的PHP代码,但没有任何效果。消除换行符现在不是一个选项,因为有成千上万的换行符。
提前感谢。

根据换行符的类型(通常取决于操作系统),您可以使用以下转义序列之一来表示字符串中的换行符:

  • \n
    用于Unix/OS X
  • \r\n
    Windows
请注意,这些仅由PHP在双引号字符串中解释。因此,考虑到这一点(并假设问题中提到的总是有两个换行符),您可以将支票更改为:

Unix/OS X换行符:

if(strpos($casa->description,“Mob\u Reduzi\n\n0”)!==false){

Windows换行符:

if(strpos($casa->description,“Mob\u Reduzi\r\n\r\n0”)!==false){


如果换行符的数量可变/不可预测,则最好使用正则表达式:

根据换行符的类型(通常取决于操作系统),可以使用以下转义序列之一来表示字符串中的换行符:

  • \n
    用于Unix/OS X
  • \r\n
    Windows
请注意,这些仅由PHP在双引号字符串中进行解释。因此,考虑到这一点(并假设始终存在如问题中所述的两个换行符),您可以将检查更改为:

Unix/OS X换行符:

if(strpos($casa->description,“Mob\u Reduzi\n\n0”)!==false){

Windows换行符:

if(strpos($casa->description,“Mob\u Reduzi\r\n\r\n0”)!==false){


如果换行符的数量可变/不可预测,您可能最好使用正则表达式:

“\n”
(注意
,不能与
)是换行符字符。但是,您需要准确地使用字符串中的内容。如果它来自win box,则应该是
“\r\n”
“\n”
“\n”
(请注意,
,不能与
)是换行符字符。但是,您需要准确地使用字符串中的内容。如果它来自win box,则为
“\r\n”
。谢谢你,我终于成功了,我已经试过了,但是没有使用正确的引号。谢谢,我终于成功了,我已经试过了,但是没有使用正确的引号