如何删除特殊字符和URL,从PHP中的字符串链接

时间:2015-02-24 12:27:35

标签: php string preg-replace preg-match-all regex-negation

您好我正在尝试通过删除特殊字符和URL(如果存在)来清理字符串,因此我使用preg_replace进行同样的操作,但是在执行相同操作时没有成功,任何人都可以指导我完成此操作。

<?php
    $string = "Design a Butterfly Mobile in your colors or consider this orb for your nursery. As a unique hanging nursery mobile this piece of butterfly art lasts thru decor changes as your baby enters the toddler years, teen years and then some. The iridescent butterflies are gently scattered thru out this mobile adding a bit of sparkle to your crib mobile. So many colors and sizes to view are here: www.Etsy.com/shop/ButterflyOrbs This ButterflyOrb is a Large size and has: ~96 fabric butterflies in hot pink, pink, white and a touch of iridescent. ~arrives ready to hang. ~a clear hanging line is attached and this allows for the mobile to appear to be floating in the air. It is a Large ButterflyOrb with a span of 16 inches in diameter. The orb mobile moves in gentle circles and will do so in the least of a breeze. Need help designing happy to do so~ just Contact ButterflyOrbs. Read to place your Custom Order, you may do so here: https://www.etsy.com/listing/65078448/nursery-decor-butterfly-nursery?ref=shop_home_active_2 Made to Order.";
//echo $string;
$val = clean($string);

//echo "after cleaning=".$val;
function clean($string) {
   //$string = str_replace(' ', '-', $string); .
    $replace = '"(https?://.*)(?=;)"';
    $output = preg_replace($replace, '', $string);
    $string =  preg_replace('/[^A-Za-z0-9\ \']/', '', $output);
   //$string =  preg_replace('/[^A-Za-z0-9\ ]/', ' ', $string); 
   $string =  preg_replace('/ /', ' ', $string);
    return strtolower($string);
}
?>

1 个答案:

答案 0 :(得分:1)

更改您的clean功能,如下所示。

function clean($string) {
   $string =  preg_replace("~\b(?:https?://(?:www\.)?|www\.)\S+|[^A-Za-z0-9 ']~", '', $string);
    $string =  preg_replace('/ +/', ' ', $string);
    return strtolower($string);
}

DEMO