[PHP] problema entrata immagini insert

Discussione in 'PHP' iniziata da trattorino, 8 Novembre 2018.

  1. trattorino

    trattorino Utente Attivo

    Registrato:
    23 Luglio 2016
    Messaggi:
    169
    Mi Piace Ricevuti:
    2
    Punteggio:
    18
    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
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    556
    Mi Piace Ricevuti:
    26
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    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
     
    A trattorino piace questo elemento.
Sto caricando...

Condividi questa Pagina