开发者

How do I remove specific URL from user input?

I want remove some URL from user input.

Example user input

$input = 'http://www.yahoo.com/';
$input = 'http://yahoo.com/';
$input = 'www.yahoo.com';
$input = 'yahoo.com';
$input = 'http://answers.yahoo.com/question/index;_ylt=AhiI2Ax0jmujpU01wK7W4cLj1KIX;_ylv=3?qid=20110224130854AA9LGdy';
$input = '<a href="http://yahoo.com">yahoo</a>';
$input = '<a href="http://yahoo.com">http://yahoo.com</a>';
$input = 'I love <a href="http://yahoo.com">http://yahoo.com</a>';

output I love
开发者_运维问答

Any domain with yahoo.com I want remove the output or return empty result. Maybe more than one domain. Let me know.


Try something like this:

$domains = array('yahoo.com', 'other-domain.org');
$domainsrgx = implode('|', array_map('preg_quote', $domains));

$filtered_userinput = preg_replace('#(^|\s+)(https?://)?([^/\s]*\.)?('.$domainsrgx.')(/[^\s]*)?(?=(\s|$))#is', '', $userinput);

This should remove everything from your example.


$data=str_replace('yahoo.com','',$data);

you can use an array to replace\remove multiple domains

$remove=array('yahoo.com','google.com');
$data=str_replace($remove,'',$data);


Ok. You can do

$rows = split("[\n|\r]", $input);
$output = "";
foreach($rows as $row){
     if(strpos($row,"yahoo.com")){
          continue;
     }else{
          $output = $row."\n";
     }
}

I hope I'm not missing anything.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜