Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Aiuto su regex e controllo dimensioni IMG

    Ciao ragazzi,
    uso lo script di seguito per estrarre immagini dagli articoli presenti in WP.
    Vorrei impostare un controllo sulla dimensione delle immagini.
    Ad esempio, se un immagine è uguale o superiore a 100pxX100px va considerata e quindi estratta altrimenti mostra l'immagine di default.
    Me la date una mano?

    Codice PHP:
    function catch_image_url() {
      global 
    $post$posts;
      
    $first_img '';
      
    ob_start();
      
    ob_end_clean();
      
    $output preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i'$post->post_content$matches);
      
    $first_img $matches [1] [0];

      if(empty(
    $first_img)){ 
        
    $first_img "/images/default.jpg";
      }
      return 
    $first_img;


  2. #2
    Non usare le regular expressions, usa http://simplehtmldom.sourceforge.net/

    Codice PHP:
    include 'simple_html_dom.php';

    $html str_load_html($post->post_content);

    foreach( 
    $html->find('img') as $image ) {
        
    // qui avrai la width in $image->width
        // la height in $image->height
        // la sorgente in $image->src


  3. #3
    Semplicemente geniale!
    Grazie infinite per la dritta.

  4. #4
    Rieccomi,
    allora, avevo provato l'ottima soluzione postata da k.b ma per esigenze particolari (sto usando timthumb), mi ritrovo a dover comunque lavorare sulle espressioni regolari.

    Mi servirebbe un piccolo aiuto con questa espressione e nello specifico dovrei filtrare tutte le immagini .gif e .bmp, quindi estrarre solo .jpg, .jpeg, .png, ecc.

    codice:
    preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    Grazie.

  5. #5
    codice:
    preg_match_all('#[img](.*?)[/img]post_content, $matches);
    dovrebbe andare (al limite aggiungi gli apici oltre le virgolette se ti serve). Ma perche' devi per forza usare le regular expressions?

  6. #6
    Ciao, purtroppo sto usando un template che utilizza già abbondantemente timthumb e siccome è abbastanza ricco di elementi non mi va di stravolgere completamente lo script. Fermo restando che simplehtml da te consigliatomi lo utilizzerò per altre applicazioni, purtroppo adesso devo lavorare sulle regex. Ora dirò perché devo filtrare le .gif... I post che ci sono sul blog purtroppo contengono molte immagini .gif ed alcune .bmp ed essendo minuscole quando vanno a fare un anteprima diventano delle cose inguardabili. Ecco perché ho bisogno di una regex che mi estragga soltanto png, jpg, ecc ma non le gif e le bmp.
    La soluzione che mi hai consigliato adesso purtroppo non risolve il problema e siccome nonostante abbia letto e visto molti esempi non ho ancora capito perfettamente come funzionano le regex.
    Per questo chiedo aiuto ai più esperti.
    Altre soluzioni?

  7. #7
    La regex che ti ho proposto dovrebbe estrarre i path di tutte le immagini del documento (dico "dovrebbe" perche' l'HTML e' un linguaggio piuttosto irregolare ed e' facile perdersi qualche caso specifico) e metterle nell'array $matches[1]. Non e' quello che ottieni? O il problema e' successivo al pattern matching? In sostanza non ho capito cosa esattamente non funziona.

  8. #8
    Ciao k.b e grazie, niente dai, alla fine ho deciso di riscrivere tutto utilizzando simplehtml. In questo modo posso estrarre tutte le immagini e poi scelgo io quale deve essere utilizzata. Un ultimo aiuto che ti chiedo per simplehtml ho provato ad estrarre i video ma non ci sono riuscito, hai un esempio da mostrarmi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.