在PHP中正确格式化URL链接

Red*_*all 2 php url wordpress

我有一个自定义字段(称为"网站"),用户将网站输入到其URL.我的PHP代码如下

<div class="profileInfo">
   <h4  class="website">Website:</h4>
      <?php if ( get_post_meta($post->ID, 'website', true)) { ?>
        <p><a href="http://<?php echo get_post_meta($post->ID, 'website', true) ?>"><?php echo get_post_meta($post->ID, 'website', true) ?></a></p>
      <?php } else { ?>
    <p class="na">no email provided</p>
    <?php } ?>
</div>
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我在URL前面加上http://

所以我的问题是,当用户在自定义字段中输入http://www.example.com网址时,它无法正确链接到网站.URL在前端http // www.example.com上看起来像这样

奇怪的是冒号:被剥离或取出所以URL不起作用!我认为这与两个http://有关

现在,我尝试从PHP代码中删除http://

<p><a href="<?php echo get_post_meta($post->ID, 'website', true) ?>"><?php echo get_post_meta($post->ID, 'website', true) ?></a></p>

因此,假设用户现在将www.example.com输入到自定义字段并发布该条目.网址现在去了

http://mysite.com/www.example.com

它尝试将URL构建到我当前的网站页面中.不知道为什么它不把它当作URL.

寻找一些帮助如何在PHP中正确编写此代码.

谢谢

Sco*_*euk 5

<?php 
if ( get_post_meta($post->ID, 'website', true)) 
{
    $link = get_post_meta($post->ID, 'website', true);
    $link = str_replace(array('http://','https://'), array('',''), $link);
    ?><p><a href="http://<?=$link?>"><?=$link?></a></p><?php 
}  
else
{ 
    ?><p class="na">no email provided</p><? 
} 
?>    
Run Code Online (Sandbox Code Playgroud)

这将替换url中的所有http://.