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

    Ricercare un parola esatta e non come parte del contenuto

    Ciao,

    ho un problema con la funzione replace, in pratica definendo le occorrenze in un array alcune di queste non vengono rimpiazzate.
    Vengo ad un esempio:

    in un TextArea posso inserire un comando per far visualizzare delle faccine (smile) con i rispettivi comandi:

    @1 @2 @3 ...@10....@20

    e quindi con una funzione interna sostituisco i comandi con dei tags per immaggini.



    ora la funzione replace, quando si troverà di fronte i comandi che vanno da @10 a @20 non li riconoscerà mai, in quanto nell'array sono presenti anche i comandi che vanno da @1 a @9 e visto che @10 e @20 iniziano rispettivamente con 1 e 2 , la funzione replace li considera come @1 e @2, questo perchè non cerca le occorrenze come parole esatte ma come parte del contenuto di una parola.

    Non ho la possibilità di cambiare i comandi devono per forza esseri così, qualche suggerimento ?

    ho postato il codice:

    Codice PHP:
    $topic     "You should eat @1 fruits, vegetables, and @3 every day.";
    $smileCode = array('@1''@2''@3''@4''@5''@6''@7''@8''@9''@10''@11''@12''@13''@14''@15'); //ecc. fino a venti
    $tags   = array( '[img].\smile\smile_01.gif[/img]',
                     
    '[img].\smile\smile_02.gif[/img]',
                     
    '[img].\smile\smile_03.gif[/img]',
                     
    '[img].\smile\smile_04.gif[/img]',
                     
    '[img].\smile\smile_05.gif[/img]',
                     
    '[img].\smile\smile_06.gif[/img]',
                     
    '[img].\smile\smile_07.gif[/img]',
                     
    '[img].\smile\smile_08.gif[/img]',
                     
    '[img].\smile\smile_09.gif[/img]',
                     
    '[img].\smile\smile_10.gif[/img]',
                     
    '[img].\smile\smile_11.gif[/img]',
                     
    '[img].\smile\smile_12.gif[/img]',
                     
    '[img].\smile\smile_13.gif[/img]',
                     
    '[img].\smile\smile_14.gif[/img]',
                     
    '[img].\smile\smile_15.gif[/img]');
                     
    //ecc. fino a venti

    $newCode str_replace($smileCode$tags$topic);

    echo 
    "$newCode"
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  2. #2
    con le espressioni regolari (preg_replace invece di str_replace) puoi fare in modo di scrivere qualcosa tipo

    cerca @1 e dopo un carattere NON numerico. in questo modo @15 salta la verifica e passa al @15 definito dopo.
    solo che non me ne intendo di replace multiple quindi non ti so dire di più.
    anija . è solo un blog
    www.anija.it

    «i'm a fountain of blood · in the shape of a girl»

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.