代码之家  ›  专栏  ›  技术社区  ›  Will

$获取中断XML

  •  -1
  • Will  · 技术社区  · 15 年前

    我在一个站点上使用SimpleViewer flash图像库,它使用一个XML文件来获取显示图像的信息。

    对于这个站点,我需要动态地生成XML,所以我使用一个声明了text/XML内容类型的PHP文件。但是,由于某些原因,当我访问$_getarray SimpleViewer中的一个GET变量时,它会告诉我库中没有图像,即使当我查看源代码时,它看起来完全相同并且格式良好。

    代码如下:

    $photos = array(
     "1" => array("house1_1.JPG")
    );
    foreach($photos[$_GET["hid"]] as $p){
     echo '';
    }

    如果我换了 $_GET["hid"] 具有 "1" 然后它可以正常工作,但是当我引用$GET时,它会返回错误。

    为什么访问GET变量会导致链接到XML(SimpleViewer flash)的脚本出现故障,有没有办法解决这个问题?

    *注意:“hid”GET变量是100%确定设置为“1”,并且没有PHP错误。 此外,当我使用$_GET[“hid”]与“1”时,输出看起来完全相同,唯一的区别是SimpleViewer脚本拒绝查看图像是否存在。 另外,空引号中的内容是一些XML,但我不知道如何让它出现在标记中。。。

    分别为$photos和$GET的Var转储:

    array(1) {
      [1]=>
      array(1) {
        [0]=>
        string(12) "house1_1.JPG"
      }
    }
    array(1) {
      ["hid"]=>
      string(1) "1"
    }
    
    4 回复  |  直到 15 年前
        1
  •  0
  •   wajiw    15 年前

    我会先检查并确保$GET[“hid”]返回“1”。如果有可能它没有返回“1”,那么它应该在访问$photos的错误索引时抛出一个错误。

        2
  •  0
  •   Treffynnon    15 年前

    $_GET hid 在您的请求中设置变量?否则将触发PHP警告。

    var_dump($_GET['hid']); 看看 $获取 变量并确保它如您所期望的那样。

    另外,请确保将错误报告设置为至少 E_ALL 并且display errors被设置为yes/true以使调试更容易。

        3
  •  0
  •   Brent    15 年前

    我想你可能对“1”和“1”之间的区别有意见。当你用一个get来处理类似的事情时?hid=1,它不是作为字符串来的,而是被转换成一个数字,而实际的数组使用字符串“1”作为键。

    将键更改为1而不是“1”,或者将hid转换为字符串。

        4
  •  -1
  •   Will    15 年前

    这个问题从未得到解决——我最终不得不继续前进,寻求一个更长、更不优雅的解决方案。哦,好吧。