PHP替换其他字符串的字符串

时间:2017-10-07 18:21:03

标签: php string replace

我有一个疑问,它可能很简单,但我不知道要解决它。

我在php中获得了一个字符串

$ string = "[link = someUrl] Text [link]"

我想将此字符串转换为:

"<a href='someUrl'> Text <a/>"

如何更改网址?我怎么能这样做呢?

请记住,该字符串属于包含更多这些礼物串的文本。

2 个答案:

答案 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