Sterge URL-ul dintr-un string

Buna seara ! Dupa mai multe cautari cum as putea scoate adresele site-urilor din titluri (ex: Voltaj - Ca la 20 de ani www.site.com ) am gasit :slight_smile:

$regexp('Voltaj - Ca la 20 de ani www.site.com','^(https?://)?(www\.)?([a-z0-9]+\.){1,}([a-z0-9]{2,})/?.*$','$3$4',1) 

Dar nu am reusit sa-l fac functional, ma poata ajuta cineva ?

Multumesc

  1. Dacă vrei să scoți un anumit URL, str_ireplace. Ăsta cred că-i evident, nu insistăm.
  2. Dacă vrei să scoți orice url dintr-un string, cred că poți renunța la reguli complexe și să iei tot ce urmează după http, https sau www până la primul caracter gol.

Acum, ce definește un URL simplu?

  1. protocolul - http/https;
  2. subdomeniul (e.g. www);
  3. domeniul (e.g. site.com);
  4. nu conține nici un spațiu (caracter gol, rând nou etc);
  5. cel puțin unul din primele două puncte trebuiesc să existe.

Prin urmare, trebuie să facem un regex care se pupă cu aceste reguli:

  1. Punem particula www și protocolul într-un singur grup: ((https?:\/\/)|(www\.))
  2. Căutăm orice caracter: (.*?)
  3. Ne oprim înainte de primul caracter gol întâlnit: ([^\s]+)

Tema ta pentru acasă este să combini regex-ul cu preg_replace și să ne pui și soluția aici. :slight_smile:

3 Likes
$text = "Voltaj - Ca la 20 de ani www.site.com";

$text = preg_replace('#http://[a-z0-9._/-]+#i', '', $text);

$regex = "#[ ]+(www.([a-z0-9._-]+))#i";

$text = preg_replace($regex,"",$text);

echo $text;

Poti folosi functia parse_url din PHP.

http://php.net/manual/en/function.parse-url.php

$regex = "#[ ]+(www.([a-z0-9._-]+))#i";

Tine cont ca punctul . inseamna orice caracter si trebuie escaped (protejat?) .

Versiunea de mai jos nu e cea mai buna sau cea mai optimizata, dar functioneaza:

function removeUrls($text){
    $regex = "#(https?://|www\.)([^\s]+)\s*#i";
    return preg_replace($regex, "", $text);
}

var_dump([
    removeUrls("Voltaj - Ca la 20 de ani www.example.com") === "Voltaj - Ca la 20 de ani ",
    removeUrls("Voltaj - Ca la 20 de ani www.example.com - Full album") === "Voltaj - Ca la 20 de ani - Full album",
    removeUrls("Voltaj - Ca la 20 de ani http://example.com - Full album") === "Voltaj - Ca la 20 de ani - Full album",
    removeUrls("Voltaj - Ca la 20 de ani http://www.example.com - Full album") === "Voltaj - Ca la 20 de ani - Full album",
    removeUrls("Voltaj - Ca la 20 de ani http://www.example.com") === "Voltaj - Ca la 20 de ani ",
    removeUrls("Voltaj - Ca la 20 de ani https://www.example.com - Full album") === "Voltaj - Ca la 20 de ani - Full album",
    removeUrls("Voltaj - Ca la 20 de ani https://www.example.com") === "Voltaj - Ca la 20 de ani ",
    removeUrls("http://www.example.com Voltaj - Ca la 20 de ani") === "Voltaj - Ca la 20 de ani",
    removeUrls("https://example.com Voltaj - Ca la 20 de ani") === "Voltaj - Ca la 20 de ani",
    removeUrls("www.example.com Voltaj - Ca la 20 de ani") === "Voltaj - Ca la 20 de ani",
]);
2 Likes