• Super User

    Php include da pubblicare solo se il file non è vuoto...

    Sto provando a fare un mini CMS senza db, in pratica ho una pagina php con diversi "include" che pubblicano alcune piccole informazioni.

    Ora il problema è che vorrei usare questa cosa anche per alcuni link, che però dovrebbero essere visualizzati solo se è stato inserito l'URL.

    In pratica avrei qualcosa del genere:
    admin.php
    fileURL1.html
    fileURL2.html
    pagina.php

    Con admin.php scrivo su fileURL1.html e su fileURL2.html, poi credo due link in pagina.php utilizzando le URL contenute nei due file.

    Ad esempio:

    
    <a href=" < ? php include fileURL1.html php> " > "LINK" </a>
    <a href=" < ? php include fileURL2.html php> " > "LINK" </a>
    
    

    Il problema è che se fileURL2.html è VUOTO allora vorrei che non venisse pubblicato il link.

    Si può fare? :bho:


  • Moderatore

    Ciao LorenzoRoma,
    ci sono un mucchio di modi per fare questa cosa, non solo con php.
    Puoi ragionare su un elemento e non sull'intero file html da includere. Un modo è quello di usare le funzioni php di stringa e le regex su uno specifico elemento, ad esempio il div "da valutare": se la ricerca dà esito positivo allora includi il file (qui usi un If).

    Isieme al php puoi usare javascript, meglio ancora se con jQuery.


  • User Attivo

    Ciao LorenzoRoma, cercando di essere aderente ai tuoi prerequisiti, una possibile soluzione potrebbe essere quella di verificare se il file in cui è memorizzato il link esistesse.
    In definitiva la soluzione potrebbe essere del tipo:

    [PHP]
    <?php

    // Link 'fileURL1.html'
    if(file_exists('fileURL1.html')) {
    ?>
    <a href="<?php include 'fileURL1.html'; ?>">link</a>
    <?php
    } // Fine link di 'fileURL1.html'

    // Link 'fileURL2.html'
    if(file_exists('fileURL2.html')) {
    ?>
    <a href="<?php include 'fileURL2.html'; ?>">link</a>
    <?php
    } // Fine link di 'fileURL2.html'

    // // // Ripetere per tutti gli altri link...

    ?>
    [/PHP]

    N.B. Per com'è stato scritto il precedente esempio si sottintende che i file richiamati "fileURL1.html" e "fileURL2.html" si trovino nella stessa cartella del file php che li richiama, altrimenti correggi il percorso.

    Ciao.


  • Super User

    Grazie a tutti, ho risolto facendo un controllo se il file pesa 0 oppure no, perchè tanto se il file è vuoto pesa 0.