- Home
- Categorie
- Coding e Sistemistica
- PHP
- estrarre link da testo
-
estrarre link da testo
ciao!
ho questo script per estrarre un link da un testo.
l'ho modificato per estrarre il link di un immagine, ma vorrei implementarlo per farlo funzionare con diversi formati (per ora bastano jpg e png)
il dominio dei file è sempre lo stesso
per ora è così.//Definizione delimitatori
$del_min = "htt...ww.nomesito.com/";
$del_max = ".jpg";//Calcolo posizione dei delimitatori
$pos_del_min = strpos($content, $del_min);
$pos_del_max = strpos($content, $del_max);//Calcolo lunghezza dei caratteri che formano il link
$pos_del_max = $pos_del_max - $pos_del_min + 4;//Estrazione del link
$imgurl = substr($content, $pos_del_min, $pos_del_max);echo $imgurl;
ma quando incontra un .png continua la ricerca, restituendomi stringhe errate.
come potrei fare?
deve trovare o .jpg o .png come delimitatore finale della stringa.consigli?
grazie
-
Ciao gphp,
ti consiglio di dare un'occhiata a queste due funzioni:
- preg_match
- preg_replace
Sono due funzioni che lavorano con le espressioni regolari, sono molto potenti e te le consiglio al posto della substr per fare questi lavori.
Nello script che hai inserito le stringhe restituite sono errate perché gli chiedi di fermarsi quando incontra ".jpg", perciò ".png" viene ignorato.
Ciao,
Luca Bartoli
-
Puoi anche utilizzare http://php.net/manual/en/domdocument.loadhtml.php
Con il loadHTML ottieni un oggetto DOM, il quale in seguito è leggibile e manipolabile a tuo piacimento
-
Ti riporto uno snippet di un mio progetto, puoi usarlo se i tuoi link sono dentro dei tag IMG
$doc = new DOMDocument(); $doc->loadHTML(<il tuo testo>); $xml = simplexml_import_dom($doc); if ($xml) { $images = $xml->xpath('//img'); foreach ($images as $img) { ... } }
da queste stringhe devi solo estrarre l'attriibuto src