Visualizzazione risultati 1 fino 6 di 6

Discussione: String replace da un valore all'altro

  1. #1
    Guest

    Predefinito String replace da un valore all'altro

    Salve,
    mi chiedevo come poter dare a php un certo carattere da dove iniziare a fare il "replace" a dove smettere...
    Ma procediamo con l'esempio che si capisce meglio:
    Ad esempio voglio che questa stringa
    Codice:
    <table style='width:100%'></table>
    Venga cancellata quindi sostituita con ''.
    Come faccio quindi a dirgli che quando trova "<table" mi vada a cancellare tutto fino a che trova "</table>", anche se ciò è dentro ad un testo ?
    Ad esempio
    Codice:
    <div style="background:red;width:70%;">
    <table style='width:100%;'></table>
    </div>
    diventi
    Codice:
    <div style="background:red;width:70%;">
    </div>
    Qualcuno sa aiutarmi?
    Grazie!

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Per sostituire stringhe generiche solitamente si usa preg_replace. Manipolare documenti HTML come stringhe però non è sempre la scelta migliore.

  3. #3
    Guest

    Predefinito

    Volevo fare ciò per permettere ad un utente di scrivere del codice html ma non utilizzare cose come script o cose troppo eccessive...
    Che altri modi ci sarebbero?
    Conoscevo il preg_replace ma non ho trovato come dirgli di partire da un punto e farlo arrivare con la sostituzione fino ad una data stringa... Si può magari fare con un array?
    Array(
    "<table" => "</table>" )

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Per questo scopo è una pessima idea scrivere del codice apposito, è decisamente molto probabile che si manchi qualcosa rendendo il proprio sito vulnerabile ad attacchi di tipo XSS o script injection.
    Leggi ad esempio: http://stackoverflow.com/questions/5...ing-html-input
    In generale è comunque più semplice non dare la possibilità di scrivere codice HTML, ma permettere di formattare mediante altri codici (come ad esempio BBcode, o meglio Markdown).

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Visto che hai una partenza fissa con <table che sia con o senza testo direi di trovare il punto di partenza con strpos ed opzionalmente con un secondo strpos di fine. Ovvio se il codice è gia inserito nel file dovrai riscrivere tutto il file senza table.

  6. #6
    Guest

    Predefinito

    Ok, grazie :)
    Alla fine ho optato per HTMLPurifier.
    Ultima modifica di competenzepertutti : 14-10-2015 alle ore 12.58.23

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •