【问题标题】:PHP variables and XML elementsPHP 变量和 XML 元素
【发布时间】:2012-06-01 04:59:10
【问题描述】:

我正在尝试使用 PHP 变量从 XML 文件中加载某些元素,因此如果加载了 index.php?id=1,它将从 $projects->project[1] 中提取信息。以下代码中没有出现错误,但没有显示任何内容。任何帮助表示赞赏:)

<?php
$projects = simplexml_load_file('portfolio.xml');
$id = $_GET["id"];
echo $projects->project[$id]->title;
?>  

【问题讨论】:

  • 您是否尝试过var_dump($projects) 以确保它在加载后包含数据?另外,试试error_reporting(~0)
  • xml 文件的一个小例子会有很大帮助!还要记住节点数从 0 开始,所以如果你只有一个节点,你将什么也得不到。此外,作为一种好的做法,您应该启用尽可能高的错误报告(即 error_reporting(E_ALL); 和 ini_set('display_errors',true);)
  • 贴出你的XML示例数据,会更有帮助。

标签: php xml


【解决方案1】:

它可能是两件事之一(或两者兼而有之):

  1. 如果没有可显示的内容,echo 不会显示任何内容。
  2. 出现错误,但您的服务器没有报告它,请尝试检查日志(如果有)。还要检查是否启用了错误报告。

也就是说,尝试使用 print_r 或 var_dump 来获取数据。

【讨论】:

    【解决方案2】:

    print_r($_GET);死; 检查你是否在 get 中获取数据。

    【讨论】:

    • 返回 Array ( [id] => 2 )
    • 意味着你的get请求没有问题你应该 $projects = simplexml_load_file('portfolio.xml'); print_r($projects);并查看 $project 对象是否包含 $projects->project 。
    【解决方案3】:

    error_reporting(~0); // show me everything i do wrong
    
    $projects = simplexml_load_file('portfolio.xml');
    
    var_dump($projects); // make sure $projects actually has something
    
    var_dump($_GET['id']); // are you getting the request data?
    
    $id = (int) $_GET["id"]; // cast to int for good measure
                             // i'm assuming it's numeric, don't if its not
    
    echo $projects->project[$id]->title; // still not showing anything?
    
    var_dump($projects->project[$id]->title); // dump it for good measure
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      相关资源
      最近更新 更多