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

Discussione: str_replace

  1. #1

    str_replace

    Ciao!!!!

    sapreste dirmi come posso fare per cambiare non sono :D in big rin.gif ma anche aggiungere <img src=bigrin.gif>?

    ho provato con
    $testo = str_replace($smiles[0],"[img].$smiles[1].[/img]", $testo);

    ma ho scoperto che nn va, infatti mi restiruisce la parola array!!! :bhò:
    Codice PHP:

    $smiles
    =array(
                array(
    ":)"":D"":P"";)"":S"":("":_("":pig:"":fagiano:""8|""8)",":@"),
                array(
    "smile.gif""biggrin.gif""pernacchia.gif""wink.gif""confused.gif""frown.gif""cry.gif""pig.gif""fagiano.gif""eek.gif""sborone.gif""mad.gif"), );
            
    $testo str_replace($smiles[0], $smiles[1], $testo); 

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Codice PHP:
    function ReplaceSmiles($text) {
     
    $testo=array();
     
    $newtesto=array();
     
    $testo[1]="#:\)#";
     
    $newtesto[1]="<img src=\"big_rin.gif\">";
     
    $testo[2]="#:/(#";
     
    $newtesto[2]="<img src=\"sad.gif\">";
     
    $text=preg_replace($testo,$newtesto,$text);
     return (
    $text); 


  3. #3
    scusa ma non ho capito la tua soluzione...mi stai dicendo che devo riscrivermi tutto l'array aggiungendo quella roba?

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Io ti ho postato una soluzione che non usa str_replace ma le espressioni regolari. Quel tipo di funzione, così come l'ho strutturata, può modificare tutto un testo utilizzando una corrispondenza tra due array.
    Se vuoi usarla, beh si devi scrivere i due array ($text e $newtext) così come ti ho detto.

  5. #5
    e già ma allora mi riscrivo direttamente l'array mettendo <img src davanti a tutti e faccio prima...

    non c'è proprio un'altra alternativa?

    se uso un ciclofor è meno peformante?

  6. #6
    nono puoi creare un terzo array tramite un for che aggiunga al secondo l' [img] $imm [/img] ??

    così puoi modificare facilmente i primi due array e il terzo, quello da usare nel str_repace lo cre autoamticamente lo script..

    ..IcE..
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  7. #7
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    E' normale che ti renda "array".
    La tua è un'array contenente 2 array, se usi un solo indice fai riferimento ad uno dei 2 array interni e non ad uno dei valori interni alle array interne...
    Dovresti usare $array[0][0] $array[1][0] etc.

    Saluti.

  8. #8
    [supersaibal]Originariamente inviato da RokStar
    E' normale che ti renda "array".
    La tua è un'array contenente 2 array, se usi un solo indice fai riferimento ad uno dei 2 array interni e non ad uno dei valori interni alle array interne...
    Dovresti usare $array[0][0] $array[1][0] etc.

    Saluti. [/supersaibal]
    CHE??
    guarda che str_replace si gira tutti gli array...
    se gli do come valore $array[0] cambia tutti i valori dell'array, altrimenti se come dici tu gli passo $array[0][2] mi cambia solo la chiave numero 2 mentre tutte le altre rimangono uguali.

  9. #9
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Prova a scrivere
    echo $smiles[0];
    ed
    echo $smiles[1];

    Ti restituiranno entrambi "array".
    Per usare lo str_replace in quel modo FORSE potresti farlo con array_walk, di sicuro NON passando $smiles[0] e $smiles[1].

    Altrimenti puoi usare una cosa del genere:
    Codice PHP:
    // suppongo che $smiles[] esista già
    $n count($smiles[0])-1;
    for (
    $x 0$x $n; ++$x) {
       
    $testo str_replace($smiles[0][$x], "<img src=\"".$smiles[1][$x]."\">"$testo);

    Che è comunque una soluzione abbastanza brutta.

  10. #10
    ascolta guarda che ti stai sbagliando puoi leggere nel manuale:

    If search and replace are arrays, then str_replace() takes a value from each array and uses them to do search and replace on subject


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.