Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 26
  1. #11
    Originariamente inviato da nicola75ss
    Prova questo.
    codice:
    $word = 'testo [img=12143] testo testo [img=2345] testo [img=1001]';
    $pattern = "/(\[img=(.*?)\])/";
    $replace =  '[img].../immagine_$1[/img]';
    $elimina = array('[img=',']');
    $word = preg_replace($pattern,$replace,$word);
    $word = str_replace($elimina,'',$word);
    echo $word;
    Grazie mille, ho risolto in questo modo:
    codice:
    $word = $text;
    $pattern = "/(\[img=(.*?)\])/";
    $word = preg_replace_callback($pattern, array($this,'replaceImagesTag'), $word);
    return $word;
    Con:
    codice:
    function replaceImagesTag($matches)
    {
      $number = str_replace(array('[img=',']'),'',$matches[1]);
      return '[img]...[/img]';
    }

  2. #12
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mi sembra che te la cavi anche meglio di me con le regexp.

  3. #13
    Originariamente inviato da nicola75ss
    Mi sembra che te la cavi anche meglio di me con le regexp.
    LOL! "Maddeche", se non c'eri tu col cavolo che risolvevo. Grazie davvero...

  4. #14
    Ma perche non hai passato il riferimento $2? la parte di str_replace č superflua. O mi sfugge qualcosa?
    La regex va bene cosė com'č basta solo passare il riferimento giusto:

    codice:
    $word = 'testo [img=12143] testo testo [img=2345] testo [img=1001]';
    $pattern = "/(\[img=(.*?)\])/";
    $replace =  '[img].../immagine_$2[/img]';
    
    $word=preg_replace($pattern,$replace,$word);
    oppure togliere le parentesi esterne:
    codice:
    $word = 'testo [img=12143] testo testo [img=2345] testo [img=1001]';
    $pattern = "/\[img=(.*?)\]/";
    $replace =  '[img].../immagine_$1[/img]';
    
    $word=preg_replace($pattern,$replace,$word);
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  5. #15
    Originariamente inviato da AnĒkin
    Ma perche non hai passato il riferimento $2? la parte di str_replace č superflua. O mi sfugge qualcosa?
    La regex va bene cosė com'č basta solo passare il riferimento giusto:

    codice:
    $word = 'testo [img=12143] testo testo [img=2345] testo [img=1001]';
    $pattern = "/(\[img=(.*?)\])/";
    $replace =  '[img].../immagine_$2[/img]';
    
    $word=preg_replace($pattern,$replace,$word);
    oppure togliere le parentesi esterne:
    codice:
    $word = 'testo [img=12143] testo testo [img=2345] testo [img=1001]';
    $pattern = "/\[img=(.*?)\]/";
    $replace =  '[img].../immagine_$1[/img]';
    
    $word=preg_replace($pattern,$replace,$word);
    Il codice che hai scritto mi sembra non funzionare se il replace lo deve fare una funzione anzichč essere una stringa.

  6. #16
    Originariamente inviato da kylnas1
    Il codice che hai scritto mi sembra non funzionare se il replace lo deve fare una funzione anzichč essere una stringa.
    cosa intendi, puoi farmi un esempio? (ma dici con una funzione di callback?)
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  7. #17
    Originariamente inviato da AnĒkin
    cosa intendi, puoi farmi un esempio? (ma dici con una funzione di callback?)
    Devo passare il valore trovato dalla funzione di ricerca ad una funzione che ne calcola il risultato, e ritorna il valore che deve essere utilizzato come nuovo valore che sostituisce il precedente.

  8. #18
    ma dici una cosa del genere?
    codice:
    preg_replace_callback($pattern, 'tuafunzione', $word);
    function tuafunzione($arg){} // accedi all'elemento che ti interessa $arg[0]/$arg[1]/etc
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #19
    Originariamente inviato da AnĒkin
    ma dici una cosa del genere?
    codice:
    preg_replace_callback($pattern, 'tuafunzione', $word);
    function tuafunzione($arg){} // accedi all'elemento che ti interessa $arg[0]/$arg[1]/etc
    Esatto.

  10. #20
    Cosė a me funziona:
    codice:
    $word = 'testo [img=12143] testo testo [img=2345] testo [img=1001]';
    $pattern = "/\[img=(.*?)\]/";
    
    function cB($arg){
    # $arg[1] č il valore da manipolare
    	$num=$arg[1]; 
    	return '[img].../immagine_'.$num.'[/img]';
    }
    echo $word=preg_replace_callback($pattern,'cB',$word);
    A meno che la funzione di callback nn sia un metodo di una classe.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

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.