我需要一种仅使用 php 从中删除周围方括号的方法:
[txt]text[/txt]
所以结果应该是:文本
它们总是成对出现。
它们始终位于字符串的开头和结尾。Thet 将始终为 [txt1][/txt1] 或 [url2][/url2]
我该怎么做?
我需要一种仅使用 php 从中删除周围方括号的方法:
[txt]text[/txt]
所以结果应该是:文本
它们总是成对出现。
它们始终位于字符串的开头和结尾。Thet 将始终为 [txt1][/txt1] 或 [url2][/url2]
我该怎么做?
尝试这个:
preg_replace("/\[(\/\s*)?txt\d*\]/i", "", "[txt]text[/txt]");
更新:
这将适用于括号中的“任何”:
preg_replace("/\[.+?\]/i", "", "[txt]text[/txt]");
您可以使用正则表达式:
$string = '[whatever]content[/whatever]';
$pattern = '/\[[^\[\]]*\]/i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
这将从[whatever]
字符串中删除所有内容。
您不需要使用正则表达式。您可以在第一个 ] 上爆炸字符串,然后使用结果在 [ 上爆炸。
使用这种方法的优点是快速且简单。
如果您只需要获取简单结构的方括号之间的文本,请尝试以下操作:
$str = '[tag1]fdhfjdkf dfhjdkf[/tag1]';
$start_position = strpos($str, ']') + 1;
$end_postion = strrpos($str, '[');
$cleared = substr($str, $start_position, $end_postion - $start_position);
对于更复杂的结构,此代码将不起作用,您必须使用其他一些方法。