Php 爆炸和stru_替换
我有以下代码Php 爆炸和stru_替换,php,Php,我有以下代码 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],我需要将其转换为[u
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错误
谢谢给你:
$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]
虽然这并不能直接回答您的问题(不是很好!),但我建议改用正则表达式:
$outputText = preg_replace('/\[url\](.*?)\[\/url\]/i', '[url=$1]$1[/url]', $inputText);
试试这个正则表达式。一个字符串出现,比如问题中的$r=I。我需要把它变成我写的东西。代码试图将其分解并以其他格式构建。如果我正确理解了您的代码,当您分解时,您实际上是在剥离[url],因此没有什么可替换的内容。您是否打印了$thelink以查看其外观?您可能希望将最后一行移到while内部,否则它将是一个无限循环,因为$r从未被修改过。@nick感谢您发现了这一点。我修好了。
$r = "[url]www.google.com[/url]";
$sub="=".substr($r,5,-6);
echo $url=substr_replace($r,$sub,4,0);
$r = preg_replace('#\[url\](.*?)\[/url\]#', '[url=$1]$1[/url]', $r);
$r = "[url]www.google.com[/url]";
$sub="=".substr($r,5,-6);
echo $url=substr_replace($r,$sub,4,0);