0

文字列の部分文字列を の形式に変換し#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にはそのための組み込み関数がありますか?

ありがとう

4

3 に答える 3

1
$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>
于 2013-07-10T10:43:33.670 に答える
1
<?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>';

}

?> 
于 2013-07-10T10:50:09.033 に答える
1

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()

于 2013-07-10T10:55:46.490 に答える