2017-10-18 7 views
2

Existe-t-il un moyen de rechercher et de supprimer l'URL ou le domaine d'une chaîne donnée avec des parenthèses? Exemple: (comme someurl.com) devrait être (comme) et [comme someurl.com] devenir [comme] ... aussi [comme someurl.com/path/something.html] devrait être [comme] Peut-être que quelqu'un peut m'aider avec un code pour le faire.Suppression de l'URL/du domaine de la chaîne avec des parenthèses

+2

regex est ce que vous recherchez – user1506104

+0

Essayez d'utiliser 'preg_replace()'. Je vois votre tag, mais qu'avez-vous essayé? – PHPglue

+0

j'ai réussi à remplacer l'URL/domaine de la chaîne, mais je ne peux pas le faire entre parenthèses ... – radu

Répondre

0

Vous avez besoin d'un Regular Expression (REGX) ici

$string_with_url = 'lorem (like GOoogle.COM someurl.com/path/something.html) lipsum'; 

$string_without_url = preg_replace("/(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-zA-Z0-9]+([\-\.]{1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,5}(:[0-9]{1,5})?(\/.+[a-zA-Z\/]\s)?/", "", $string_with_url); 

echo $string_without_url; // lorem (like) lipsum 
+0

Cela fonctionne très bien sur les domaines en minuscules, les majuscules ne sont pas remplacés, ou si un domaine est: someDomain.com remplace seulement omain.com et il deviendra un peu – radu

+0

pas un gros problème, j'ai mis à jour ma réponse – AZinkey

+1

merci beaucoup, c'était la solution. – radu

0
$str = "(like someurl.com)"; 
$index_dot = $index_space_before_dot = $index_after_dot = -1; 
for($i=0; $i<strlen($str); $i++){ 
    if($str[$i] == '.'){ 
     $index_dot = $i; 
    } 

    if($str[$i] == ' ' && $index_dot == -1 && $index_space_before_dot == -1){ 
     $index_space_before_dot = $i; 
    }elseif ($str[$i] == ' ' && $index_dot > -1){ 
     $index_space_before_dot = $i; 
    } 
} 

$str = substr($str, 0, $index_space_before_dot); 
echo $str . ')';