我有以下代码
while (strpos($r, "[url]") !== FALSE){
$link = explode("[url]", $r);
$final_link = explode("[/url]", $link[0]);
$thelink = $final_link[0];
}
$r = str_replace("[url]","[url=$thelink]",$r);
如果$r = [url]www.google.com[/url]
,我需要将其转换为[url=www.google.com]www.google.com[/url]
此代码似乎没有这样做。我错过了什么吗? 给我一个500错误!
由于
答案 0 :(得分:1)
preg_replace('~\[url\](.*?)\[/url\]~', '[url=$1]$1[/url]', $string);
答案 1 :(得分:0)
你走了:
$r = '[url]www.google.com[/url]';
if (strpos($r, "[url]") !== FALSE){
$link = explode("[url]", $r);
$final_link = explode("[/url]", $link[1]);
$thelink = $final_link[0];
$r = str_replace("[url]","[url=$thelink]",$r);
}
var_dump($r);
更改是:将while
更改为if
,因为它似乎不是while
的原因。同时将$link[0]
更改为$link[1]
。
答案 2 :(得分:0)
虽然这不能直接回答你(不太好!)的问题,但我建议使用正则表达式:
$outputText = preg_replace('/\[url\](.*?)\[\/url\]/i', '[url=$1]$1[/url]', $inputText);
答案 3 :(得分:0)
$r = preg_replace('#\[url\](.*?)\[/url\]#', '[url=$1]$1[/url]', $r);
请尝试使用正则表达式。
答案 4 :(得分:0)
$r = "[url]www.google.com[/url]";
$sub="=".substr($r,5,-6);
echo $url=substr_replace($r,$sub,4,0);