プロが教える店舗&オフィスのセキュリティ対策術

$fieldにあるの文字列のうちURLのFQDN部分を全て省くプログラムを、
教えてグーで以下のようにおそわったのですが・・・

$pattern="/https?:\/\/[\w:%#\$&\?\(\)~\.=\+\-]+/";


$field = preg_replace_callback($pattern,function ($matches){
return parse_url($matches[1],PHP_URL_PATH);
},$field);

echo $field;

なんかの条件で、
Notice: Undefined offset: 1 in /home/xxxxx/www/xxxxx/wp-content/themes/xxxxx/category.php on line 33

のnoticeが出ます

このnoticeが出ないようにするにはどこを変えればいいのでしょうか?
よろしくお願い申し上げます。(phpのエラー設定を変える以外で)

A 回答 (1件)

マッチしていないので$matches[1]が未設定だというエラーですね



>return parse_url($matches[1],PHP_URL_PATH);

を、たとえば

return isset($matches[1])?parse_url($matches[1],PHP_URL_PATH):"";

にするなどで対応してみては?
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!