[PHP] problema entrata immagini insert

trattorino

Utente Attivo
23 Lug 2016
174
2
18
38
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
 

macus_adi

Utente Attivo
5 Dic 2017
1.266
82
48
IT/SW
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