1

我对 PHP 有点陌生,所以这可能听起来很愚蠢,但是您最好如何重写以下代码以删除领先的 http:// 和/或 www。如果他们在场,他们会离开一个网址吗?

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

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

    return $new;
}

如您所见,如果 URL 中不存在前导 http://,则代码会将其添加到 URL,但因为我试图同时删除 http:// 和 www。你会使用四个 if 语句(一个如果不存在,一个如果只有一个东西存在,另一个是当两者都存在时)?

任何帮助将非常感激。:)

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 回答