Php 查找并替换文本中以特定字符开头的所有字符串
我试图允许用户链接到他们自己的墙贴中的其他墙贴。因此,例如,如果用户键入:请参阅post::35了解更多信息我会将字符串更改为:请参阅Php 查找并替换文本中以特定字符开头的所有字符串,php,Php,我试图允许用户链接到他们自己的墙贴中的其他墙贴。因此,例如,如果用户键入:请参阅post::35了解更多信息我会将字符串更改为:请参阅了解更多信息 我有下面的函数,它从内容中获取所有的帖子编号,如开头的::所示 function getBetween($content, $start, $end, $rest = array()) { $r = explode($start, $content, 2); if (isset($r[1])) { $r = explo
了解更多信息
我有下面的函数,它从内容中获取所有的帖子编号,如开头的::所示
function getBetween($content, $start, $end, $rest = array()) {
$r = explode($start, $content, 2);
if (isset($r[1])) {
$r = explode($end, $r[1], 2);
$rest[] = $r[0];
return getBetween($r[1], $start, $end, $rest);
} else {
return $rest;
}
}
$post = 'Lorem ::35 ipsum ::36 dolor sit ::37 ::38';
$links = getBetween($post, '##', ' ');
$links返回一个包含35、36、37、38的数组。我不知道的是如何用超链接替换原始字符串中的超链接。此代码将找到
:digit
,它的两侧有空格,或者显示在文本的开头或结尾
$post = 'Lorem ::35 ipsum ::36 dolor sit ::37 ::38';
$post = preg_replace('/(\G|\s+|^)::(\d+)((?=\s+)|(?=::)|$)/','$1 <a href="?postid=$2">$2</a> $3',$post);
echo $post;
// Lorem <a href="?postid=35">35</a> ipsum <a href="?postid=36">36</a> dolor sit <a href="?postid=37">37</a> <a href="?postid=38">38</a>
$post='Lorem::35 ipsum::36 dolor sit::37::38';
$post=preg|u replace('/(\G|\s+|^):(\d+)((?=\s+)|(?=:)|$)/','1$3',$post);
echo$post;
//同侧阴唇
如果您的帖子链接类似
或
您可以使用立即替换它,如
$result=preg_replace('/::(\d+/),'$1',$content)
@user2994560我在标记周围添加了一些额外的空格,以使像
::37::38
这样的情况看起来更干净