【发布时间】:2011-08-24 07:34:21
【问题描述】:
这是I posted here 的后续问题(感谢mario)
好的,所以我有一个 preg_replace 语句来用 sometext 替换 url 字符串,从查询字符串中插入一个值(使用 $_GET["size"])并从关联数组中插入一个值(使用 $fruitArray["$1"] 反向引用。 )
输入网址字符串为:
http://mysite.com/script.php?fruit=apple
输出字符串应该是:
http://mysite.com/small/sometext/green/
我的PHP如下:
$result = preg_replace('|http://www.mysite.com/script.php\?fruit=([a-zA-Z0-9_-]*)|e', ' "http://www.mysite.com/" .$_GET["size"]. "/sometext/" .$fruitArray["$1"]. "/"', $result);
此代码输出以下字符串:
http://mysite.com/small/sometext//
代码似乎跳过了$fruitArray["$1"] 中的值。
我错过了什么?
谢谢!
【问题讨论】:
-
当问这样的问题时,您应该完全删除 $_GET 和 $fruitArray 并改用常量,将问题仅定位到 preg_replace。可能你的变量是空的,我们不能确定
-
@Riccardo Galli 你说得很对,吸取的教训 - 必须停止在 fag 数据包的背面编写 php 并转移到 PHP IDE - 你有什么建议吗?我真是个菜鸟:/干杯。
-
设法通过重写一些前面的代码来解决这个问题;我有其他 preg_replace 调用干扰了 url 字符串:/ 也许我上面的代码毕竟是半好的 :-) 这个项目开始时很小,但现在它有数百行代码 - 向所有人道歉 - 我很感激答案,干杯!