1

私はPHPに少し慣れていないので、これはおそらくばかげているように聞こえますが、以下のコードを書き直して、先頭のhttp://やwwwを削除するのが最善の方法です。それらが存在する場合、URLから外れますか?

function jt_cmb_validate_text_url( $new ) {
    if ( '' == $new ) { return; }

    if ( !preg_match('/http:\/\//', $new) ) {
        $new = 'http://' . $new;
    }

    return $new;
}

ご覧のとおり、コードは先頭のhttp://がまだ存在しない場合はURLに追加しますが、http://とwwwの両方を削除しようとしているためです。4つのifステートメントを使用しますか(1つは存在しない場合、1つは単一のもののみが存在する場合、もう1つは両方が存在する場合)?

どんな助けでも大歓迎です。:)

4

2 に答える 2

3

必要以上に削除しないようにするには(たとえば、削除したくないクエリ文字列に完全なURLが含まれている可能性があります)、正規表現を使用する必要があります。

$new = preg_replace("(^(?:https?://)?(?:www\.)?)","",$old);
于 2012-12-02T01:39:38.347 に答える
1

str_replace() —出現するすべての検索文字列を置換文字列に置き換えます

str_replace ("http://" , "", $url )
str_replace ("www." , "", $url )

一般的な構文

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

count-合格した場合、これは実行された置換の数に設定されます。

于 2012-12-02T01:48:24.960 に答える