Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: 2 preg_match in una if

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333

    2 preg_match in una if

    Ciao a tutti.
    Considerate per favore queste if

    $pat="/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/";

    $foto1="http://www.cicccio.it/ciccia.jpg";
    $foto2="";

    if (preg_match($pat,$foto1) || (!preg_match($pat,$foto2)))

    e quest'altra

    if (preg_match($pat,$foto1) && (!preg_match($pat,$foto2)))

    A me torna TRUE la prima if ma non la seconda come invece prevedevo io.
    Perché?
    Grazie
    Ultima modifica di jomla; 17-09-2017 a 17:10

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Min***a quanto è incasinata...

    intanto non ha senso la parentesi attorno al secondo preg_match...

    Poi questo: (http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/) Non si può vedere...

    (utilizzando # come delimitatore)

    ^http(s)?://(www)?

    Poi è giusto: la prima restituisce:

    if ( true || !false ) // una vera, ma comunque se la neghi sono tutte e due vere

    la seconda:

    if ( true && !false ) // tutte e due vere, perciò viene eseguito

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    OK grazie.
    Io ho bisogno che nel caso $foto2 non sia un url la IF ritorni falso

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    la seconda restituisce false

    if (preg_match($pat,$foto2) == false) {
    print 'Sono falsa';
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    Sì certo ma devo accoppiarla a preg_match($pat,$foto1) perchè se $foto1 non è un url non mi interessa se esiste $foto2

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Fai due if.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    NO volevo usarne una sola
    Questa però mi pare che funzioni
    if ((preg_match($pat,$foto1) && preg_match($pat,$foto2))===false)
    Voi cosa ne dite?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    dico che fa schifo

    immagino che stai facendo un modulo dove "user" può uploadare fino a 2 foto, giusto?

    // se te ne basta una vera:
    Codice PHP:
    if (preg_match($pat,$foto1) || preg_match($pat,$foto2))
    {
      
    // procedi con l'upload di foto uno o due o tutte e due
    } else {
      print 
    "carica almeno una foto"

    o

    Codice PHP:
    if (!preg_match($pat,$foto1) && !preg_match($pat,$foto2))
    {
      print 
    "carica almeno una foto"
    } else {
      
    // procedi con l'upload di foto uno o due o tutte e due


  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Quote Originariamente inviata da jomla Visualizza il messaggio
    NO volevo usarne una sola
    Questa però mi pare che funzioni
    if ((preg_match($pat,$foto1) && preg_match($pat,$foto2))===false)
    Voi cosa ne dite?
    Why ?

    Essere informatico è anche essere pragmatico.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Why ?

    Essere informatico è anche essere pragmatico.
    Non gli si può negare che è originale...

    Raddoppio!

    Codice PHP:
    if ((preg_match($pat,$foto1) == false && preg_match($pat,$foto2) == false) === true
    Ultima modifica di zacca94; 17-09-2017 a 20:36

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.