php爆炸代码中的语法错误

时间:2014-07-16 11:08:43

标签: php

我添加了一些代码来处理规范链接,但它似乎并没有起作用。在几个文件中重复的一行代码在Dreamweaver旁边显示一个红色标记,所以我怀疑这是错误的。

$pid = explode('=',explode('&',$_SERVER['QUERY_STRING'])[0]);

任何人都可以看到一个明显的原因,这会被DW标记出来。我没有看到任何未公开的括号或'因此,我有点失落。

更新: 看来原始代码中存在一个基本错误,因为var $ pid [1]从未给出正确的数据。

我尝试使用下面的分割代码答案,如果我print_r这个

$qs = explode('&',$_SERVER['QUERY_STRING']);

结果是Array([0] => main_page = index [1] => cPath = 70_229_242_240)

然后print_r第二部分

$pid = explode('=',$qs[0]);

给出索引

的结果

这是不正确的。

使用结果的代码的简化版本是

if($pid[1] == '70_229_242_240'){
echo " true";
}

因此,您可以看到我实际需要存储在$ pid中的内容取自cPath = 70_229_242_240

我已尝试更改爆炸以向我提供此数据,但我无法获得正确的结果。 TBH,他们总是混淆我的地狱。

解决。

使用$ pid = explode(' =',$ qs [1]);

3 个答案:

答案 0 :(得分:1)

您可以将此代码更改为:

$qs = explode('&',$_SERVER['QUERY_STRING']);
$pid = explode('=',$qs[0]);

摆脱这个红色标记。

但实际上Dreamweaver不是PHP编辑器,你应该简单地选择别的东西来编写你的PHP代码。

答案 1 :(得分:1)

您需要将字符串传递给explode(),因此请尝试implode()使用limit -1获取第一个爆炸阵列

$pid = explode('=',implode('=',explode('&',$_SERVER['QUERY_STRING'],-1)));

否则你需要两个陈述

$fr = explode('&',$_SERVER['QUERY_STRING']);
$pid = explode('=',$fr[0]);

答案 2 :(得分:0)

Dreamweaver确实认识到PHP 5.4,正如迈克尔所说,这个表达式只有在版本5.4之后才是正确的