簡體   English   中英

如何找到一個字符串模式並在PHP中對其進行修改?

[英]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,否則:)

另請參見: urlencode() htmlspecialchars()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM