php не может использовать SimpleXMLElement (ошибка сервера 500) и не может выводить данные - PullRequest
0 голосов
/ 14 января 2012

У меня 2 проблемы.
(1) Я написал приложение для iphone для периодической отправки обновленных данных GPS с iphone (возможно, период = 1 с). Я написал эти строки в php

сервера
<html>
<body>
<?php
$xmlFile = file_get_contents("php://input");
echo $xmlFile."<br>";
echo "Hello World!";
?>
</body>
</html>

А на стороне iphone я реализую метод делегата NSURLConnection, например

connection: didReceiveData: 

распечатав данные в консоли XCode, чтобы проверить, была ли строка xml отправлена ​​на сервер. И я успешно получаю следующее в консоли XCode,

<html><body><openingTagOfXML>the xml string sent.</openingTagOfXML><br>Hello World!</body></html>

Но когда я запускал приложение, я захожу на сайт www.mywebsite.com/index.php(i.e. Php, показанный выше), только Hello World! отображается на странице! Я полагаю, что xml-код может отображаться и в клиентском браузере. Зачем? Это потому, что переменная xmlFile всегда меняется?

(2) Когда я затем использую SimpleXMLElement или какую-либо встроенную функцию, например simplexml_load_string, на веб-странице возникает ошибка 500 Internal Server Error, например

$xml = new SimpleXMLElement($xmlFile);
echo $xml->asXML();

а также, когда я попробовал приведенный ниже код,

$xmlFile = file_get_contents("php://input");

$xfstr = $xmlFile;
echo $xfstr."<br>";
$xml = <<<XML
$xfstr
XML;

echo $xml;

$doc = new DOMDocument();

if($doc->loadXML($xml))
{
echo "XML loaded! ";
}
else
{
    echo "XML not loaded! ";
    if(empty($doc)){
  echo "XML is empty. ";
    }else{echo "XML not empty. ";}
}

В возвращенных данных в моей консоли XCode всегда отображается «XML notloaded!» и «XML не пустой» (но, пожалуйста, обратите внимание, что я вижу код xml, который я отправил на сервер на моей консоли XCode).
Я просто не знаю, почему он может быть загружен!

...