文字列を返す安全なリンクの関数を書きました。関数は safe_link( string ) と呼ばれますが、文字の置換に問題があります。str_replace() が機能しない理由がわかりません。これが、独自の関数を作成した理由です。有効な URL を保存する必要があります。 http://、www を削除する必要があります。フォームで与えられた文字列から。
function safe_link($arg){
$url = str_split($arg);
$string = array();
$max = 0;
if($url[0] == "h" && $url[7] == "w") # http://www.
$max = 11;
elseif($url[0] == "h") # http://
$max = 7;
elseif($url[0] == "w") # www.
$max = 4;
str_replace("/", "", $url);
for($i = $max, $n = 0; $i < sizeof($url); $i++, $n++){
$string[$n] = $url[$i];
}
return implode("", $string);
}
機能は動作していますが、URL の末尾に「/」(スラッシュ) を書き込んだ場合はどうなるでしょうか。その文字列から削除する必要がありますが、その方法がわかりません。str_replace() が機能していません。デバッグしようとしたところ、配列$url[sizeof($url) - 1]
が 1 文字ではなく 2 文字を返していることがわかりました。しかし、なぜ?
ありがとうございました !