$string = preg_replace("#[name=([a-zA-Z0-9 .-]+)*]#",''."$1",$string);
スクリプトのこの部分は機能しません:
str_replace(' ', '-', "$1")
" " を "-" に置き換える必要がありますpreg_replace
。また、 main 内preg_replace
でstr_ireplace
も試します。
しかし、これはまだ機能していません
$string = preg_replace("#[name=([a-zA-Z0-9 .-]+)*]#",''."$1",$string);
スクリプトのこの部分は機能しません:
str_replace(' ', '-', "$1")
" " を "-" に置き換える必要がありますpreg_replace
。また、 main 内preg_replace
でstr_ireplace
も試します。
しかし、これはまだ機能していません
置換は、置換ごとではなく、事前に評価されます。e
ただし、正規表現で修飾子を使用することでこれを行うことができます。
$string = preg_replace("#\[name=([a-zA-Z0-9 .-]+)*]#e", '"<td><a href=\"$front_page/".str_replace(" ", "-", "$1")."\">$1</a></td>"', $string);
または使用してpreg_replace_callback
:
function callbackFunction($match) {
global $front_page;
return '<td><a href="'.$front_page.'/'.str_replace(" ", "-", $match[1]).'">'.$match[1].'</a></td>';
}
$string = preg_replace_callback("#\[name=([a-zA-Z0-9 .-]+)*]#", 'callbackFunction', $string);
$1
では使用できないため、2 つの手順で行う必要があると思いますstr_replace()
。$1
実際には変数として存在しません。置換文字列のプレースホルダーにすぎません。