我正在尝试从Google地图动态加载KML文件,用户可以在Drupal(链接字段)中的输入字段上进行配置。但是我被卡住了,因为以下工作完美无瑕,但最后一个没有。
使用:
$xml = simplexml_load_file("Google Maps Link");
也适用:
$link = "Google Maps Link";
$xml = simplexml_load_file($link);
不起作用:
$link = $fields['field_link']->content;
// produces "
// http://www....."
$xml = simplexml_load_file($link);
我真的不知道这里发生了什么。我尝试使用trim()
或htmlspecialchars()
(查看任何奇怪的字符),但到目前为止没有任何效果。我只在非对象上得到错误Fatal error: Call to a member function asXML()
,但这只是因为xml没有被加载。 simplexml_load_file
返回false。当我打印两个链接时,它们是相同的。我唯一看到的是Drupal的链接在开始时有一些char强制它进入一个新行。不过不知道如何识别它。
答案 0 :(得分:0)
使用代表任何空白字符的preg_replace
和\s
从链接中删除未识别(和未指定)的空格:
$link = '
http://www.example.com';
$link = preg_replace("/\s+/", "", $link);
echo ">" . $link . "<" . PHP_EOL;
输出:
>http://www.example.com<
您现在应该可以使用simplexml_load_file($link);
加载它。