我有一个疑问,它可能很简单,但我不知道要解决它。
我在php中获得了一个字符串
$ string = "[link = someUrl] Text [link]"
我想将此字符串转换为:
"<a href='someUrl'> Text <a/>"
如何更改网址?我怎么能这样做呢?
请记住,该字符串属于包含更多这些礼物串的文本。
答案 0 :(得分:1)
短 $s = "[link=someUrl] Text [/link]";
$result = preg_replace('#\[[^=]+=([^]]+)\]([^[]+).*#', '<a href=\'$1\'>$2</a>', $s);
print_r($result);
解决方案:
<a href='someUrl'> Text </a>
输出(作为网页源代码):
listoflists=[[1,2,5],[1,1,1],[1,2,2,2,1]]
result=[]
for lis in listoflists:
total = 0
for i in lis:
if i==1:
total+=1
result.append(total)
答案 1 :(得分:0)
您可以使用以下代码
function transformText($string) {
preg_match("/\[link\=([^\]]*)\](.*?)\[\/link]/", $string, $matches);
$someUrl = $matches[1];
$text = $matches[2];
$newString = "<a href='$someUrl'>$text</a>";
return $newString;
}
$string = "[link=someUrl] Text [/link]"; // Test string
echo (transformText($string));
使用的正则表达式的现场演示:https://regex101.com/r/tzVfmH/4
注意:上述代码仅适用于单[link]
,[/link]
对。
如果要处理多次,那么最好使用正则表达式搜索和替换,使用preg_replace
中建议的php RomanPerekhrest's answer。