【问题标题】:number from $_GET not being read into simplexml xpath query using php$_GET 中的数字未使用 php 读入 simplexml xpath 查询
【发布时间】:2011-10-07 16:26:59
【问题描述】:

这可行:

1 $number  = 2;
2 $allofit = simplexml_load_file("thexmlfile.xml");
3 $thebook = $allofit -> booklist[$number] -> abook;
4 echo $thebook;

以下内容不起作用: 但是,如果我想使用我设置的方法 GET 从一个 from 中读取 $number

 6 $number=$_GET[thenumber];   // $number=2 from the form//
 7 echo $number;              // and properly shows $number=2 --*/
 8 $allofit = simplexml_load_file("thexmlfile.xml");
 9 $thebook = $allofit -> booklist[$number] -> abook;
 10 echo $thebook;

第 10 行的回显没有报告任何内容(没有错误,只是 html 中的空格),即使我可以在第 7 行成功回显 $number ......所以它被设置了,但只是没有在第 9 行被拾取..尽管第 3 行中的等效项有效(!)。

各位有什么想法吗?

提前致谢 J

【问题讨论】:

    标签: php xpath get simplexml


    【解决方案1】:

    试试:

    $number=intval($_GET[thenumber]); 
    

    【讨论】:

    • 是的,谢谢 Shane。对不起小学生的问题。我是 PHP 新手......我回忆起我的 FORTRAN 日子,并记得需要将变量声明为一种类型。 intval 或 (int) 成功了 :) 感谢您的快速响应
    【解决方案2】:

    $number=$_GET[thenumber];

    在这个阶段 $number 是一个字符串。

    您需要将其强制转换为整数吗?可能与intval? http://php.net/manual/en/function.intval.php

    【讨论】:

    • 谢谢马克!尽管为此苦恼了 2 小时,但在发布大约 2 分钟后,我突然想起了我的 FORTRAN 日子以及需要声明变量的方式!
    【解决方案3】:

    PHP 应该可以毫无问题地将您的“2”转换为 2。我的猜测是您缺少引号:$number=$_GET[thenumber]。试试$number=$_GET['thenumber'];

    【讨论】:

    • 嗨。恐怕引号没有解决问题(我先尝试了单引号和双引号)。诀窍是将 $_GET[thenumber] 声明为整数值:intval($_GET[thenumber])。还是谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多