当前位置: 首页 > 面试题库 >

解析错误:语法错误,意外的T_FUNCTION第10行?

夏侯腾
2023-03-14
问题内容

我的代码有什么问题?我在测试服务器上运行了代码,并且代码可以正常工作,但是当我将其上传到生产服务器时,我得到了

Parse error: syntax error, unexpected T_FUNCTION in /hermes/bosweb/web013/b130/ipg.acrsflcom/darayngedbeats/gentest.php on line 10

这是我的代码

$old = "http://darayngedbeats1.s3.amazonaws.com    /mp3/CrazyMonsta2.mp3?AWSAccessKeyId=AKIAJXA36ESCLQHCB54Q&Expires=1297279906& Signature=HD36ZQE8yeTIW6JPWKMcciPTiTs%3D"; //enter the key that needs to be converted
$search =  array(":","?","=","&","%");
$replace = array("%3A","%3F","%3D","%26","%25");

function search_replace($s,$r,$sql)
{ $e = '/('.implode('|',array_map('preg_quote', $s)).')/';
  $r = array_combine($s,$r);
  return preg_replace_callback($e, function($v) use ($s,$r) { return $r[$v[1]];  },$sql);
}

echo "<br><br>";
$new = search_replace($search,$replace,$old);
echo $new;

?>

问题答案:

该错误很可能是由于

return preg_replace_callback($e, function($v) use ($s,$r) { return $r[$v[1]];  },$sql);

您可能会使用不支持闭包的PHP 5.2或更早版本。您可以找出正在使用的PHP版本
phpinfo()

您可能需要升级到PHP
5.3+,或者使用create_function或编写静态函数并将其作为回调传递。

这是最后一个选项的示例,使用一个简单的类来存储状态$r

class My_callback {
  public function __construct($s, $r) {
    $this->s = $s; $this->r = $r;
  }

  function callback($v) { return $this->r[$v[1]]; }
}

function search_replace($s,$r,$sql) {
  $e = '/('.implode('|',array_map('preg_quote', $s)).')/';
  $r = array_combine($s,$r);
  $c = new My_callback($s, $r);
  return preg_replace_callback($e, array($c, 'callback'), $sql);
}


 类似资料:
  • 有人能告诉我我做错了什么吗? 我只想在特定房间上在线显示用户。 下面的代码是调用my online的函数。这是我的聊天记录。当我加载页面时,这个函数也会加载。 在线 的PHP 这是我网上的内容。php 有什么帮助吗?

  • 第22行是: 我不知道为什么我会得到这个,我已经检查了我的语法,所有似乎是正确的。它基本上不喜欢执行查询后的任何内容 编辑: 我明白这是容易SQL注入,但我这样做只是为了测试目的。

  • 我正在使用Flash和PHP创建一个JPG。我让Flash和PHP在本地主机服务器上按预期工作。当我上传到服务器时,出现以下错误: 分析错误:语法错误,在/home/carlosrg/public\u html/mysubdomain/image中出现意外的“:”。php在线6 以及守则: 提前感谢您的时间。

  • 这是我正在开发的wordpress插件的代码。 我是插件开发新手,不知道为什么会出现这样的错误:

  • 问题内容: 我有这个行代码 在我的本地(WAMP)php 5.4.3上运行良好,但是当我将其托管在服务器cpanel上时,它将给出此错误 我服务器上的php版本是5.2.17 我没有发现任何问题,请帮忙 问题答案: 您需要运行PHP 5.4+才能使用速记数组

  • 问题内容: 调试代码时出现此错误: PHP解析错误:语法错误,第72行的order.php中出现意外的T_OBJECT_OPERATOR 这是代码段(从第72行开始): 问题答案: 不幸的是,不可能在刚用PHP 5.4之前创建的对象上调用方法。 在PHP 5.4和更高版本中,可以使用以下内容: 注意必填的括号对。 在以前的版本中,必须在变量上调用方法: