0
が機能していません。にpreg_replaceは、私はすべてのパターン>>「番号」(>> 4など)を変換したい
この機能で何が問題なのか教えてください。
function autolink($content) {
$pattern = "/>>[0-9]/i" ;
$replacement = "<a href=\"#\\0\">>>\\0</a>";
return preg_replace($pattern, $replacement, $content, -1);
この機能はうまくいきます。この関数は、自動的にURLをクリック可能なハイパーリンクに変換します。なぜ最初の機能が動作していないのか分かりません。
function autolink2($contents) {
$pattern = "/(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]{2,4})?\/?"; // domain+port
$pattern .= "([\.~_0-9a-z-]+\/?)*"; // sub roots
$pattern .= "(\S+\.[_0-9a-z]+)?" ; // file & extension string
$pattern .= "(\?[_0-9a-z#%&=\-\+]+)*/i"; // parameters
$replacement = "<a href=\"\\0\">\\0</a>";
return preg_replace($pattern, $replacement, $contents, -1);}
これは長いショットかもしれませんが、最後の2つの '' 'の代わりに' $ replacement'に '> >'を入れるのはどうですか?また、数字が2桁以上の場合、つまり「>> 10」と考えることもできます。正規表現 ''/>> [0-9] +/i "'を使用することができます。 –