[PHP] problema entrata immagini insert

trattorino

Utente Attivo
23 Lug 2016
173
1
18
43
Ho una stringa, e questa stringa ad esempio genera immagini sia emo che normali, ovviamente queste stringa viene generata tramite un form taxarea, ad esempio
HTML:
echo <<<HTML
sono la stringa di questo esempio
<img src="https://forum.mrwebmaster.it/data/avatars/s/32/32589.jpg?1470351003">
<img src="https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/1f606.png">
fine test
HTML;
quello che vedete è un esempio di come un utente può compilare il form, ricevo quei risultati, ovviamente per ovviare il problema che un utente usi codice html ho usato questo
Codice:
 strip_tags($testorisposta,'<img>');
elimina tutti i tag all'infuori del tag img, quello che vi chiedo se è possibile scaricare l'immagine che racchiudi il link https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/1f606.png voglio che scarichi solo le immagini che siano su https://cdn.jsdelivr.net e ignori le altre in questo caso la prima https://forum.mrwebmaster.it.

come posso fare per far questo, è non permette che un utente quando invia il form non metta codice img ma che passino solo le immagini che vi ho detto, grazie
 
La parte più semplice sarebbe effettuare il parser della stringa e recuperare in primis i solo tag img e successivamente controllare nell'attr src il contenuto.
Per fare questo (eviterei di riscoprire l'acqua calda) ti consiglio questa libs (PHP HTML DOM).
es:
PHP:
//inizializzo la lib.
$simple_obj=file_get_html($string);
//variabile contenente le sole img valide
$my_images=[];
//inizio il ciclo sulla stringa
foreach($simple_obj->find('img') as $items){
//verifico che l'attr abbia come radice cdn,jsdelivr
$info=parse_url($items->src);
//verifico che host dell'img sia uguale a quello che mi serve, se uguale memorizzo in array l'intero tag img.
if($info['host']=='cdn.jsdelivr.net')$my_images[]=$items->outertext;
}
return $my_images;
Spero sia utile
 
  • Like
Reactions: trattorino

Discussioni simili