我有一个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"
}
}
我已经尝试过PHP代码,这些代码之间有换行符,但没有任何效果。现在消除换行不是一种选择,因为有数千条线。 提前谢谢。
答案 0 :(得分:0)
根据它们的换行类型(通常取决于操作系统),您可以使用以下转义序列之一来表示字符串中的换行符:
\n
适用于Unix / OS X \r\n
Windows 请注意,这些仅由PHP在双引号字符串中解释。因此,考虑到这一点(假设问题中总是有2个换行符),您可以将支票更改为:
Unix / OS X换行符:
if(strpos($casa->description,"<td>Mob_Reduzi</td>\n\n<td>0</td>") !== false){
Windows换行符:
if(strpos($casa->description,"<td>Mob_Reduzi</td>\r\n\r\n<td>0</td>") !== false){
如果有一个可变/不可预测的换行符,你可能最好使用正则表达式:http://php.net/manual/en/function.preg-match.php