【问题标题】:How can I fix this PHP XML parsing error?如何修复此 PHP XML 解析错误?
【发布时间】:2009-05-30 14:18:48
【问题描述】:

这是我的第一个问题:)。

我正在用 PHP 编写一个小 twitter 应用程序,它会向您的所有关注者发送 DM。我现在要做的是获取关注者列表。因此,通过 twitter api 并获取所有用户名,但由于某种原因会出现此解析错误。我是 php 新手(但对编程不太了解),我实际上是昨天开始学习的,所以请放轻松;)。

代码如下:

$t= new twitter();
$t->username= $_GET["username"];
$t->password= $_GET["password"];
$fi = $t->followers();
    $xml[$page] = new SimpleXMLElement($fi[2]);
    $user1count=0;
    while(isset($xml[$page]->user[0])){
          foreach ($xml[$page]->user as $user) {
             $userdet[(string)$user->screen_name]=array( ’screen_name’=> (string)$user->screen_name, ‘location’=>(string)$user->location, ‘description’=>(string)$user-> description, ‘profile_image_url’=> (string)$user-> profile_image_url, ‘url’=>(string)$user-> url, ‘name’=>(string)$user->name );
             $user1details[$user1count]= (string)$user->screen_name;
             $user1count++;
           } 
          $page++;
          $fi=getfilecontents($friendsurl.$username1."xml?page".$page);
          if($fi[0]===false){
               echo ("Error :".$fi[1]);
               $err=new SimpleXMLElement($fi[2]);
               echo " ".$err->error." ";
               // echo ““;
               die();
          }
       $xml[$page] = new SimpleXMLElement($fi[2]);
    }

而且报错说:

致命错误:在 /Applications/XAMPP/xamppfiles/htdocs/scripts/dmsend.php:125 中未捕获的异常“异常”和消息“字符串无法解析为 XML” 堆栈跟踪:#0 /Applications/XAMPP/xamppfiles /htdocs/scripts/dmsend.php(125): SimpleXMLElement->__construct('') #1 {main} 在 /Applications/XAMPP/xamppfiles/htdocs/scripts/dmsend.php 第 125 行抛出

谢谢! :)

【问题讨论】:

    标签: php xml parsing


    【解决方案1】:

    看起来 $fi[2] 不是有效的 xml 字符串。我不是 100% 熟悉 twitter API,但我会做一个 var_dump($fi) 并评估开始返回的内容。从那里,您应该能够弄清楚发生了什么。

    【讨论】:

    • 我个人是echo "<pre>".var_export($fi[2],true)."</pre>"; 的粉丝,因为它更容易阅读
    • 通常我是 echo '
      ' 的粉丝; print_r($var);回声'
      ';但我 var_dump 对新手来说更容易。
    • 它显示为 Null,所以我发现它是需要身份验证的 twitter API。谢谢!
    • echo "
      ".var_export($fi[2],true)."
      ";要去我的代码收集器;)
    • 如果您传递一个数组,请注意不要使用数字,因为它会触发“无法将字符串解析为 XML”错误。
    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 2018-05-30
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多