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

    Snellire codice con più funzioni strpos

    Ciao a tutti!
    Ho un insieme di schede tecniche con un prefisso e mi trovo ora a dover gestire alcune eccezioni.
    Il concetto è: faccio con strpos() un controllo del nome della variabile di ogni scheda, e se esso contiene una di N parole chiave, NON stampa il prefisso (le eccezioni non hanno bisogno del prefisso).
    Questo codice funziona, mi chiedevo però se esisteva la possibilità di scriverlo senza dover ripetere ogni volta la funzione strpos()...

    Codice PHP:
    if (
        
    strpos($nomescheda,"eccezione1")===FALSE &&  // se $nomescheda non contiene la 1a eccezione, oppure
        
    strpos($nomescheda,"eccezione2")===FALSE &&  // se $nomescheda non contiene la 2a eccezione, oppure
        
    strpos($nomescheda,"eccezione3")===FALSE     // se $nomescheda non contiene la 3a eccezione
    )

    echo 
    "Prefisso-standard "// stampo il prefisso per tutte le altre schede
    echo $trad[$nomescheda]; // stampo il nome vero e proprio della scheda 
    Spero sia tutti chiaro... grazie a tutti!
    «Prendo rifugio nel grande BOH»

  2. #2
    Codice PHP:
    $eccezioni = array('eccezione1''eccezione2', ...);

    $contieneEccezione false;
    foreach (
    $eccezioni as $eccezione) {
        
    $contieneEccezione $contieneEccezione || strpos($nomescheda$eccezione);
    }

    if (
    $contieneEccezione) {
        
    // senza prefisso
    } else {
        
    // prefisso

    È solo uno dei tanti modi per farlo. Ho usato l'operatore OR perché da quanto ho capito ti basta che ci sia una singola eccezione e il prefisso non deve essere inserito, mentre nel tuo codice usi AND ma in quel caso una stringa deve contenere TUTTE le eccezioni per non avere il prefisso... modificalo a tuo pacimento.

    PS: l'ho scritto al volo senza testarlo ma dovrebbe funzionare..
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.