2014-10-20 2 views
0

Google지도에서 사용자가 Drupal (링크 필드)의 입력 필드를 통해 구성 할 수있는 KML 파일을 동적으로로드하려고합니다. 그러나 나는 다음과 같이 완벽하게 작동하기 때문에 나는 붙어있다. 그러나 마지막 하나는 그렇지 않다.링크가 Drupals에서 오는 경우 Simplexml_load_file이 깨졌습니다. field_link

작품 :

$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)의 링크가 처음부터 새로운 문자로 시작하는 숯을 가지고 있다는 것입니다. 그것을 식별하는 방법을 모르겠다. 공백 문자를 나타냅니다 preg_replace\s를 사용하여 링크에서

+0

'print_r ($ fields [ 'field_link'] -> content)'생산물은 무엇입니까? –

+0

"(휴식) MY-LINK (새 행)"와 같은 것. 위의 내용을 참조하십시오. –

답변

0

제거 미확인 (불특정) 공백 :

$link = ' 
      http://www.example.com'; 

$link = preg_replace("/\s+/", "", $link); 
echo ">" . $link . "<" . PHP_EOL; 

출력 :

>http://www.example.com< 

이제 사용하여로드 할 수 있어야한다 simplexml_load_file($link);.

+0

안녕하세요, 이것이 올바른 해결책 (특히 실제로 공간을 제거한 이후)에 동의하는 동안, 여전히 작동하지 않으므로 하드 코드 된 링크를 사용하기로 결정했습니다. –

관련 문제