Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    ciclo if else se è mobile o desktop

    Salve a tutti

    è possibile fare un ciclo if else in base al dispositivo che utilizza l'utente?

    In pratica vorrei mostrare un testo solo se è su desktop e nasconderlo se è su mobile.

    Sapete consigliarmi qualcosa?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Partiamo dall'assunto che if/else non è un ciclo, ma una struttura di controllo.
    I cicli sono for, foreach, while...

    Ci sono librerie già scritte per riconoscere i dispositivi che usano gli utenti, fa una ricerca con "php device detection", dovresti trovarne un bel po'.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Puoi usare questa libreria per farlo: https://github.com/serbanghita/Mobile-Detect/

  4. #4
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Partiamo dall'assunto che if/else non è un ciclo, ma una struttura di controllo.
    I cicli sono for, foreach, while...
    Si ho sbagliato a scrivere

    In ogni caso ho trovato questo su internet, ma è affidabile?

    Codice PHP:
    <?php
            $useragent
    =$_SERVER['HTTP_USER_AGENT'];        if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
            {             
    //echo "mobile";        }        else{           // echo "desktop";        }?>

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Non penso che leggendo l'espressione regolare ti si possa dire se va bene o no.
    Tieni presente che ci sono sempre dispositivi nuovi in commercio.
    Trova una qualche libreria aggiornata e che sia seguita, per esempio su GitHub dove puoi renderti conto di queste cose.
    Non è un controllo che scrivi oggi e va bene per sempre, devi tenerlo aggiornato se vuoi che sia affidabile.

  6. #6
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Puoi usare questa libreria per farlo: https://github.com/serbanghita/Mobile-Detect/
    ho visto che bisogna installarlo un pacchetto composer, ma è possibile farlo anche sui server in hosting ?
    Non credo di aver accesso ssh
    Nel caso non ci sono alternative?

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Nella pagina che hai linkato c'è la sezione
    Download and include manually

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Nella pagina che hai linkato c'è la sezione
    Download and include manually
    ah ok, credevo che mi faceva scaricare i file ma poi dovevo utilizzare obbligatoriamente composer per terminare l'installazione.
    Provo ad usarlo allora
    Grazie

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    rieccomi,
    ho configurato il tutto e funziona, riesco a fare cio' che voglio.

    Vorrei capire solo una cosa:
    se volessi diversificare il nome della pagina per chi entra da mobile o da computer, come potrei fare?

    Tipo:
    se entra da desktop vede il sito www.miosito.it
    se entra da smartphone vede il sito mobile.miosito.it

    C'entra questa classe oppure serve altro?
    Grazie

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Metti un semplice if/else che fa un redirect su una o sull'altra pagina a seconda di ciò che rileva la classe.

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.