Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    ripetere una parte di testo

    Ciao a tutti,

    stavo mettendo a punto un anteprima dei codici con i bbcode... mi sono bloccato su uno
    il bbcode
    codice:
    [simg]indirizzoimmagine[/simg]
    dovrebbe trasformarsi in codice html così:

    finora avevo sempre utilizzato la funzione str_replace() per convertire il tag iniziale o finale, in html... però in questo caso quello che sta in mezzo ai due tag (che non è una variabile) dovrebbe essere ripetuto due volte... come posso risolvere il mio problema?

    esiste una funzione che permette la ripetizione del testo contenuto tra due stringhe (si chiamano così , scusate ma non so i termini esatti)

  2. #2

    Re: ripetere una parte di testo

    Originariamente inviato da zn666
    Ciao a tutti,

    stavo mettendo a punto un anteprima dei codici con i bbcode... mi sono bloccato su uno
    il bbcode
    codice:
    [simg]indirizzoimmagine[/simg]
    dovrebbe trasformarsi in codice html così:

    finora avevo sempre utilizzato la funzione str_replace() per convertire il tag iniziale o finale, in html... però in questo caso quello che sta in mezzo ai due tag (che non è una variabile) dovrebbe essere ripetuto due volte... come posso risolvere il mio problema?

    esiste una funzione che permette la ripetizione del testo contenuto tra due stringhe (si chiamano così , scusate ma non so i termini esatti)
    Devi usare le EREG, anzi meglio ancora le PREG.

    Str_replace è una funzione semplice e veloce che però ha una potenza limitata.

    Con le PREG non hai limiti, puoi manipolare il tutto come preferisci.
    Ti conviene iniziarle a studiare, tanto servono negli ambiti più disparati e prima o poi ti troverai a doverle utilizzare nuovamente. Ti consiglio un paio di LINK che utilizzo sempre per aiutarmi a costruirne una:

    http://it.php.net/manual/en/function.preg-replace.php
    http://www.perl.com/doc/manual/html/pod/perlre.html

    Bye

  3. #3

    Re: Re: ripetere una parte di testo

    Originariamente inviato da platone
    Devi usare le EREG, anzi meglio ancora le PREG.

    Str_replace è una funzione semplice e veloce che però ha una potenza limitata.

    Con le PREG non hai limiti, puoi manipolare il tutto come preferisci.
    Ti conviene iniziarle a studiare, tanto servono negli ambiti più disparati e prima o poi ti troverai a doverle utilizzare nuovamente. Ti consiglio un paio di LINK che utilizzo sempre per aiutarmi a costruirne una:

    http://it.php.net/manual/en/function.preg-replace.php
    http://www.perl.com/doc/manual/html/pod/perlre.html

    Bye
    grazie, navigando ho visto che ci sono diverse funzioni che iniziano per preg
    tu ne avevi in mente quacluna in particolare?

    http://forum.html.it/forum/showthrea...highlight=preg
    da questa discussione sembra che serva per verificare se ci sono solo numeri... ed in altri siti fanno esempi con mille slash e lettere che non capisco cosa vogliano dire...

    magari tu che lo conosci puoi farmi vede un esempio più semplice?

    se per esempio dalla variabile $a, dovessi far risultare fuori una stringa come la variabile $b, come potrei fare utilizzando il preg (o un'altra funzione)??

    Codice PHP:
    $a='[testo1]indirizzo.com[/testo2]'

    $b='testo1+inidirizzo.com+testo2+indirizzo.com+testo3' 

  4. #4

    Re: ripetere una parte di testo

    Originariamente inviato da zn666
    stavo mettendo a punto un anteprima dei codici con i bbcode... mi sono bloccato su uno
    il bbcode
    codice:
    [simg]indirizzoimmagine[/simg]
    Studiati il codice di questo articolo:

    BBCode for Dummies in PHP

  5. #5

    Re: Re: ripetere una parte di testo

    Originariamente inviato da filippo.toso
    Studiati il codice di questo articolo:

    BBCode for Dummies in PHP


    Se gli dai lo script già pronto non apprenderà mai niente il pupo!


  6. #6

    Re: Re: Re: ripetere una parte di testo

    Originariamente inviato da platone
    Se gli dai lo script già pronto non apprenderà mai niente il pupo!
    Hai provato a passare la stringa utilizzata da zn666 al codice suggerito, prima di postare il tuo commento?

    Se ho scritto studiati il codice, ci sarà stato un motivo, non credi?

  7. #7

    Re: Re: Re: Re: ripetere una parte di testo

    Originariamente inviato da filippo.toso
    Hai provato a passare la stringa utilizzata da zn666 al codice suggerito, prima di postare il tuo commento?

    Se ho scritto studiati il codice, ci sarà stato un motivo, non credi?
    Vabbè sono 2 le modifiche che deve fare a quello script, non mi sembra un granchè difficile.
    In ogni caso speriamo che posti almeno la sua creatura finale.

    Così almeno vediamo quanto si è messo d'impegno.

  8. #8

    Re: Re: Re: Re: Re: ripetere una parte di testo

    Originariamente inviato da platone
    Vabbè sono 2 le modifiche che deve fare a quello script, non mi sembra un granchè difficile.
    In ogni caso speriamo che posti almeno la sua creatura finale.

    Così almeno vediamo quanto si è messo d'impegno.
    non sapevo questa storia che non è consuetudine dare la "pappa pronta" (penso come direste voi), scusatemi se vi sono sembrato troppo invogliato o uno di quelli che posta solo perché non ha voglia di cliccare sul pulsante cerca di google.

    cmq devo ammettere che ha un po' ragione filippo perchè in effetti guardando lo script a cui mi ha rimandato platone (era l'esempio che stavo cercando, grazie) ho capito facilmente cosa avrei dovuto fare nel mio caso, ed infatti ecco il risultato
    Codice PHP:
    $a preg_replace('#\[simg\](.*?)\[/simg\]#sie'"'<div><a href=\"' . htmlentities(stripslashes('\\1')) . '\" rel=\"thumbnail\" ><img src=\"' . htmlentities(stripslashes('\\1')) . '\" style=\"max-width:200px; max-height:200px;\" height=\"125\"></a><a style=\"display:none\" href=\"' . htmlentities(stripslashes('\\1')) . '\" rel=\"thumbnail\"><img src=\"thumbnail.gif\" style=\"width: 200px; height: 200px\" /></a></div>'"$a); 
    a quanto ho capito (.*?) che sta tra le prime virgolette si sostituisce nelle seconde (virgolette) con la scrittura \\1 che nello script a cui mi ha rimandato platone si è anche assicurato che se ci fossero state parole contenenti l'apostrofo non ciano errori del tipo che l'apostrofo viene stampato con lo slash davanti e si assicura che tutti i caratteri che abbiano una corrispettiva entità HTML mettendolo scritto così htmlentities(stripslashes('\\1')) e naturalmente siccome è una funzione bisogna che si chiudano gli apici del preg e si aggiunga la funzione con il punto .
    tutte quegli slash sono sempre davanti agli apici doppi per far si che poi verranno stampati correttamente e non si confondano sicuramente con quelli del preg
    ... forse non mi sono spiegato bene, ma ho capito quello che devo fare, spero di essere stato utile a qualcuno che sta leggendo questo post magari dopo 3 mesi da questa risposta


    che ne dite ho superato l'esame? :lol:
    cmq per il php non ho fretta di impararlo perché molto probabilmente andrò a frequentare il corso di ingegneria informatica l'anno prossimo, quindi nel secondo anno è previsto il php e chissà, magari poi sarò io a darvi una mano per ricambiare in futuro... lo spero per ricambiare, grazie per tutto

  9. #9

  10. #10
    Originariamente inviato da platone
    Molto bene.



    La stringa (.*?) hai capito come deve essere tradotta?
    è citato molte volte negli esempi http://www.goldenweb.it/manuale_php/...eg-replace.php http://it2.php.net/preg_replace ma non lo spiega e cercando su google siccome sono solo simboli non trova risultati

    beh, se però per traduzione intendi dire a parole, io la tradurrei con "tutto quello che c'è scritto", cioè tutto quello che si trova compreso tra, nel mio caso, i due tag [simg] e [/simg]...


    invece non so che dire di # e #sie ... penso che servano per definire l'inizio e la fine della parte del testo da cui cercare... ma se fosse così sarebbero inutili perché nello script dico già che il testo da cercare deve essere compreso tra i due tag [simg] e [/simg]

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.