[英]How to find a string pattern and modify it in PHP?
我想將字符串的子字符串以#123
的形式轉換為<a href='show.php?id=123'>#123</a>
。 因此,使它們鏈接。
因此,字符串"take a look at #42"
變成了"take a look at <a href='show.php?id=42'>#42</a>"
。
php是否具有內置功能?
謝謝
$pattern = '/([^#]+)(#[\d]+)([^#]+)/';
$str = 'Take a look at #42';
if (preg_match($pattern, $str, $matches)){
echo $matches[1]."<a href='show.php?id=".substr($matches[2], 1)."'>". $matches[2].'</a>'.$matches[3];
}
輸出:
Take a look at <a href="show.php?id=42">#42</a>
<?php
$string="take a look at #42";
if (preg_match('/#[0-9]+/', $string, $matches)){
echo "<a href='show.php?id=".substr($matches[0], 1)."'>". substr($matches[0], 1).'</a>';
}
?>
使用preg_replace_callback()
進行替換:
echo preg_replace_callback('/#(\w+)/', function($match) {
return sprintf('<a href="show.php?id=%s">%s</a>',
$match[1],
'#' . $match[1]
);
}, 'take a look at #42');
// look at <a href="show.php?id=42">#42</a>
雖然這里沒有嚴格要求,但是請確保您正確地轉義了HTML,否則:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.