文字列の部分文字列を の形式に変換し#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()