如果我.
通过$ _GET 传递名称为PHP变量的PHP,则会自动用_
字符替换它们。例如:
<?php
echo "url is ".$_SERVER['REQUEST_URI']."<p>";
echo "x.y is ".$_GET['x.y'].".<p>";
echo "x_y is ".$_GET['x_y'].".<p>";
…输出以下内容:
url is /SpShipTool/php/testGetUrl.php?x.y=a.b
x.y is .
x_y is a.b.
…我的问题是:有 什么 办法可以阻止我?无法为我的一生弄清我应做的一切
我运行的PHP版本是5.2.4-2ubuntu5.3。
这是PHP.net对其执行原因的解释:
传入变量名称中的点
通常,当将变量传递到脚本中时,PHP不会更改变量的名称。但是,应注意,点(句点,句号)不是PHP变量名称中的有效字符。由于这个原因,请看一下:
<?php $varname.ext; /* invalid variable name */ ?>
现在,解析器看到的是一个名为$ varname的变量,其后是字符串连接运算符,其后是裸字符串(即与任何已知关键字或保留字都不匹配的未引用字符串)“
ext”。显然,这没有预期的结果。因此,必须注意,PHP会自动用下划线替换输入变量名称中的任何点。
那是来自http://ca.php.net/variables.external。
另外,根据此注释,这些其他字符也将转换为下划线:
以下是PHP转换为_(下划线)的字段名称字符的完整列表(不仅仅是点):
- chr(32)()(空格)
- chr(46)(。)(点)
- chr(91)([](方括号)
- chr(128)-chr(159)(多种)
因此,看起来好像您坚持使用它,因此您必须使用awnerd的建议将下划线转换回脚本中的点(不过我只是使用str_replace。)
问题内容: 我对代码感到不知所措,其中GET值(例如)不作为函数的参数包括在内。 什么时候需要将POST和GET方法包括为函数的参数? 问题答案: 您何时需要将POST和GET方法包括为函数的参数? 我会说:“从来没有”:和什么叫做超全局:他们在整个脚本存在; 这意味着它们存在于函数/方法中。 特别是,您不需要那些关键字。 但是,依靠函数/方法中的那些方法还是很不习惯的:您的函数/方法通常不应该依
使用 Ghostscript 9.19、Windows 10 专业版 我正在使用Ghostscript将现有PDF转换为PDF/A-1b。 然而,即使所需的字体已经嵌入到我的原始PDF中,Ghostscript仍在输出PDF/A文件中替换它们。 具体来说:将字体Times-Bold替换为Times New Roman,Bold。将字体Times-Roman替换为Times New Roman。将字
问题内容: 是否可以将值作为数组输入? 如果我尝试使用发送链接,而我想在php端使用,那么该值如何成为数组?因为现在正在返回。它是标题链接中的最后一个ID。有什么建议么? 问题答案: 在PHP中执行此操作的通常方法是输入您的URL而不是: 然后将是这些值的数组。它不是特别漂亮,但是可以直接使用。
所以我有这样的代码: 如你所见,如果我按“A”,它将用“E”代替“A”。但这就像多米诺骨牌效应:它现在检测“e”,并将其替换为“i”,以此类推,直到它得到“y”。我如何防止这种情况? 注意:我不擅长regex所以请试着解释一下。
问题内容: 如何通过$ _GET将数组类型的一个或多个变量传递给另一页? 我总是以以下形式传递变量值 那传球呢? 我是否需要编写一个for循环并附加所有值? 谢谢 问题答案: 您可以使用语法通过_GET传递数组: PHP理解此语法,因此等于。 您还可以指定键: 多维数组也可以工作: 自动执行此操作: 一种替代方法是传递json编码的数组: 您可以解析为: 并再次使用json_encode对其进行编
我知道这是一个常见的问题,因为我在决定发帖之前一直在寻找答案,但我似乎无法找到一个解决方案。 问题:我有一个分页脚本(PHP)用于我的搜索结果。显然常见的是,第一页的结果显示良好,然后在移动到第2、3页等时失败。 当点击页面2、3等时,我在搜索中使用的每个变量都有一个“未知索引”错误。 因此,I$_从表单中获得以下变量: 谢谢