如何删除“回显网址时的http://”?“

时间:2017-09-18 作者:Dan

我正在尝试回显没有“http://”(或“https://”)的域名(url)。

我创建了以下内容:

<?php $surl = bloginfo(\'url\'); $findh = array( \'http://\' ); $replace = \'\'; $outputh = str_replace( $findh, $replace, $surl ); echo $outputh; ?>

我还尝试了另一种方法:

<?php $surl = bloginfo(\'url\'); echo str_replace(\'http://\', \'\', $surl); ?>
这似乎是一项简单的任务,但当域是echo\'d时,输出仍然包括“http://”。查看了此处的其他帖子和其他站点,但没有任何效果。也许Wordpress基本文件中有什么东西在干扰,但这一点不确定。

提前感谢您的反馈!

4 个回复
SO网友:Mark Kaplun

bloginfo 与它的结果相呼应,这就是为什么您尝试“获取值”并对其进行操作不会导致任何结果,因为实际上没有返回任何值。如果要获取相关值,应使用get_bloginfo 相反

SO网友:Michael Ecklund

您可以使用核心PHP函数parse_url(); 为了这个。

Example:

$url              = \'https://www.google.com/\';
$url_data         = parse_url( $url );
$url_data[\'host\'] = explode( \'.\', $url_data[\'host\'] );
unset( $url_data[\'host\'][0] );

echo join( \'.\', $url_data[\'host\'] ); // outputs: google.com

SO网友:Gopala krishnan

使用此代码删除http://https://

$str = \'http://www.google.com\';
$str = preg_replace(\'#^https?://#i\', \'\', $str);
echo $str;

SO网友:UltimateDevil

试试这个可能对你有帮助,

$link = get_permalink();
    $remove_http = \'#^http(s)?://#\';
    $remove_www  = \'/^www\\./\';
    $replace     = \'\';
    $new_link    = preg_replace( $remove_http, $replace, $permalink );
    $new_link    = preg_replace( $remove_www, $replace, $new_link );
    echo \'<p>\' . $new_link . \'</p>\';

结束

相关推荐

PARSE_TAX_QUERY导致导航菜单消失

我正在使用以下代码段修改查询。。。function no_child_terms($query) { if( !is_admin()) { $query->tax_query->queries[0][\'include_children\'] = 0; } } add_action(\'parse_tax_query\', \'no_child_terms\'); 这可以正常工作,可以正确修改查询,但会导致我的导航菜单消失