【问题标题】:Strict Standards: Only variables should be passed by reference preg_replace [duplicate]严格的标准:只有变量应该通过引用 preg_replace [重复]
【发布时间】:2020-01-11 15:49:22
【问题描述】:

我是 Mysqli_* 的新手,但遇到以下错误:

(PHP 4 >= 4.0.5,PHP 5,PHP 7)

preg_replace_callback — 使用回调执行正则表达式搜索和替换

$url = preg_replace('/\/index.php$/i', '', reset($url = explode('?', $_SERVER['HTTP_REFERER'])));

我已经阅读了 PHP 站点,但我没有看到任何东西。我已经尝试使用 preg_replace_callback 并拆分字符串,但仍然无法正常工作。

【问题讨论】:

  • 这和mysqli_*有什么关系?
  • 为什么你认为你需要使用preg_replace_callback?如果您需要动态计算替换,而不是只想用空字符串替换,则需要这样做。
  • 你到底想做什么?
  • 问题在于reset() 的参数。它需要是一个变量,而不是变量赋值。
  • 把作业放在上一行。

标签: php preg-replace explode preg-replace-callback


【解决方案1】:

无需拨打reset(),直接拨打explode()即可。

$url = preg_replace('/\/index\.php$/i', '', explode('?', $_SERVER['HTTP_REFERER']));

【讨论】:

  • 出于教育目的,请转义点。我认为OP希望在查询字符串[0]之前定位url。
猜你喜欢
  • 2014-11-01
  • 2015-05-27
  • 2015-09-24
  • 2016-10-05
  • 2014-08-17
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多