如果声明删除领先的http:// www。关闭URL

时间:2012-12-02 01:25:25

标签: php if-statement

我对PHP有些新手,所以这可能听起来很愚蠢,但你最好如何重写下面的代码来删除领先的http://和/或www。如果他们在场,请关闭网址?

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

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

    return $new;
}

正如您所看到的,代码将前导http://添加到url(如果它尚未存在),但是因为我正在尝试删除http://和www。 你会选择四个if语句(如果没有,则一个,如果只存在一个,则各一个,两个都存在时)?

非常感谢任何帮助。 :)

2 个答案:

答案 0 :(得分:3)

为了确保您不会删除任何超出需要的内容(例如,您不想删除查询字符串中的完整URL),您应该使用正则表达式:

$new = preg_replace("(^(?:https?://)?(?:www\.)?)","",$old);

答案 1 :(得分:1)

str_replace() - 用替换字符串

替换所有出现的搜索字符串
str_replace ("http://" , "", $url )
str_replace ("www." , "", $url )

一般语法

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

计数 - 如果通过,则会将其设置为已执行的替换次数。