1

可能重复:
正则表达式 URL 匹配

我正在尝试创建可以为我的聊天提供可点击链接的功能....这是我创建的功能

<?php
//makes links starting with http clickable
    function makehttpclickable($text){
        return preg_replace('!(((f|ht)tp://)[-a-zA-Z?-??-?()0-9@:%_+.~#?&;//=]+)!i', '<a href="$1">$1</a>', $text);
}
//makes links starting www. http clickable

function clickywww($www){
    return preg_replace('!((www)[-a-zA-Z?-??-?()0-9@:%_+.~#?&;//=]+)!i', '<a href="$1">$1</a>', $www);
}
/function that gives me an error!
function clickydotcom($noob){
    return preg_replace('!([-a-zA-Z?-??-?()0-9@:%_+.~#?&;//=]+)(\.com)!i'.'!([-a-zA-Z?-??-?()0-9@:%_+.~#?&;//=]+)(\.com)!f', '<a href="$1.com$f">$1.com</a>', $noob);
}

我收到了一个未知的修饰符错误。警告:preg_replace() [function.preg-replace]: 未知修饰符 '!' 所以无论如何,任何帮助都会很好地说明我如何使所有类型的链接都可点击

4

1 回答 1

0

这段代码会做

 <?php
 $input= "website is http://www.xyz.com";
 $clickable = preg_replace('*(f|ht)tps?://[A-Za-z0-9\./?=\+&%]+*', '<a href="$0">$0</a>', $input);
 echo $clickable;
 ?> 

我在您的功能中根据上述解决方案进行了一些修改。此代码将使 ftp、http 等链接可点击

 <?php
 function makehttpclickable($input){
 return preg_replace('*(f|ht)tps?://[A-Za-z0-9\./?=\+&%]+*', '<a href="$0">$0</a>', $input);
 }
 ?> 

希望这可以帮助

于 2012-11-30T05:02:16.810 回答