【发布时间】:2014-09-24 03:25:45
【问题描述】:
<?php
$string = file_get_contents("csv.csv");
$array = explode(",", $string);
$q = strtolower($_GET[q]);
foreach ($array as $value) {
$result = explode(":", $value);
if (strpos($q, $result[0]) !== false) {
$output = $result[1];
}
}
echo $output;
?>
这是文件csv.csv 的内容,我将其转换为字符串。
hello: how are you doing,
hi: what are you,
df:df
如果$_GET[q](和$q)是hello,则$output 是how are you doing。但是,如果是hi,我不会得到输出what are you,或者如果我是df,我不会得到df。
发生这种情况的任何原因?提前感谢您的热心帮助。
【问题讨论】:
-
$_GET[q]应该是$_GET['q']。 -
确保开启 error_reporting 和 display_errors,始终处于开发阶段。 PHP 将在
$_GET[q]中抱怨undefined constant q。error_reporting(E_ALL); ini_set('display_errors', 1);总是在开发代码时. -
@Darren 从纯语法的角度来看很好,但实际上我已经不知疲倦地使用了
$_GET[q],它与$_GET['q']没有什么不同。另外,我确定它与发生的问题无关...... -
@MichaelBerkowski 错误报告是开启。
-
@testo 但它是不同的。我使 PHP 使用一种旨在使您摆脱自己的行为,从而将它不知道的常量转换为字符串。依赖是一件坏事。如果您的错误报告显示为
E_ALL(不禁止通知),您肯定会看到类似使用未定义常量 q - 假定为 'q' 的通知