Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    eliminare a capo dopo un tag <h3>

    Buongiorno
    nel mio pannello di controllo ho un campo chiamato DESCRIZIONE dove inserisco la descrizione di un hotel.

    In questo campo posso aggiungere dei tag <h3> per creare una sorta di mini titolo di quella descrizione

    Esempio:

    <h3 class="h3">Ristorazione</h3>
    Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

    <h3 class="h3">Piscine</h3>
    Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

    Il problema è che nel pannello di controllo, devo per forza scrivere il testo affianco al tag di chiusura dell'</h3> altrimenti mi creerebbe un nuovo spazio vuoto, e quindi al momento lo tengo cosi':

    <h3 class="h3">Piscine</h3>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

    Come potrei fare per inserire il tag h3 su una riga ed il testo descrittivo subito sotto.

    Nella pagina che estrae i dati dal database, la variabile descrizione la tiro fuori cosi':
    codice:
    $descrizione = nl2br($riga["descrizione"]);
    Questo mi serve per andare a capo nel testo della descrizione.

    Adesso vorrei togliere solo l'accapo tra h3 e testo.
    Esiste un modo per farlo?
    Grazie

  2. #2
    Codice PHP:
    $string '<h3 class="h3">Piscine</h3>Lorem ipsum';
    $string preg_replace('#</h3>#si'"</h3>\r\n"$string);
    echo(
    $string); 

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Codice PHP:
    $string '<h3 class="h3">Piscine</h3>Lorem ipsum';
    $string preg_replace('#</h3>#si'"</h3>\r\n"$string);
    echo(
    $string); 
    Pero' non mi trovo con quello che poi scrivo sotto
    nel senso che con <h3>piscine</h3> funziona, ma se sotto ho altro testo tipo <h3>camere</h3> non va, mi aggiunge sempre un a capo in piu' perche' sto aggiungendo nl2br, pero' se lo tolgo perdo la formattazione che voglio dove ho inserito io gli a capo
    Cosi':
    codice:
    $descrizione = nl2br($riga["descrizione"]);
    $descrizione = str_replace('#</h3>#si', "</h3>\r\n", $descrizione);

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Se la stringa originale della descrizione con tag h3 è senza a capo ("\r\n", "\n", "\r" mentre a capo per un file x/html è il tag br), puoi modificare con preg_replace come indicato da filippo.toso, cioè da "testo" a "testo\r\n" però è ricorsivo se la stringa di copia verrà memorizzata e quindi diventa la nuova originale (significa aggiunge "\r\n" anche se già presente).
    Codice PHP:
    $string '<h3 class="h3">Piscine</h3>Lorem ipsum'// stringa senza a capo
    $string nl2br(preg_replace('#</h3>#si'"</h3>\r\n"$string)); // nl2br traduce ogni occorrenza di \r\n o \n\r o \n o \r senza rimuovere a capo e aggiunge il tag br
    echo($string); // dopo il titolo tag h3 output con "\r\n" e tag br, se servito in x/html si vedrà a capo del tag br , mentre per vedere esattamente il codice sorgente per il <br /> impostare header a text/plain.
    $string $string '<h3 class="h3">Camere</h3>Lorem ipsum'// sovrascrivere la variabile $string, tag h3 e descrizione senza a capo 
    Per evitare dopo aver aggiunto tag h3 e descrizione, modifica solamente l'output. $string adesso usa a capo ("\r\n" e tag br, echo mostra l'output).
    Ultima modifica di darbula; 09-01-2022 a 16:58

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    mi sono perso.
    La mia è una pagina php anche se poi come estensione è .htm

    preg_replace è deprecato e sto usando str_replace
    la variabile è $descrizione

    Usando il seguente codice e togliendo e tenendo l'h3 su un rigo ed il testo descrittivo sul rigo successivo, mi si crea un br in piu'
    Codice PHP:
    $descrizione nl2br(str_replace("#</h3>#si""</h3>\r\n""$descrizione")); 
    Ho anche provato a sostituire \r\n con br tipo cosi':
    Codice PHP:
    $descrizione nl2br(str_replace("#</h3>#si""</h3><br>""$descrizione")); 
    ma ugualmente non funziona

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    ereg_replace o Il modificatore \e PCRE deprecato ma la funzione preg_replace no. Copia e incolla il messaggio per favore.
    No str_replace non funziona con espansione espressioni regolari ma esattamente stringa (non ti serve).
    Non c'entra il discorso estensione php o htm se comunque il parser e il motore capisce che è codice, più che altro output. Se l'output è destinato per un browser sarà conforme al markup x/html (cioè i tag) e un tag br non è visibile come carattere ma semplicemente in x/html vuol dire a capo.
    Forza aggiungendo un header per visualizzare nel semplice testo
    Codice PHP:
    header('Content-Type: text/plain; charset=utf-8');
    $string '<h3 class="h3">Piscine</h3>Lorem ipsum'// stringa senza a capo
    $string nl2br(preg_replace('#</h3>#si'"</h3>\r\n"$string)); // nl2br traduce ogni occorrenza di \r\n o \n\r o \n o \r senza rimuovere a capo e aggiunge il tag br
    echo($string); // dopo il titolo tag h3 output con "\r\n" e tag br, se servito in x/html si vedrà a capo del tag br , mentre per vedere esattamente il codice sorgente per il <br /> impostare header a text/plain.
    $string $string '<h3 class="h3">Camere</h3>Lorem ipsum'// sovrascrivere la variabile $string, tag h3 e descrizione senza a capo 
    Invece per php il mime_type predefinito potrebbe essere html, che sarebbe così
    Codice PHP:
    header('Content-Type: text/html; charset=utf-8'); 
    Prima di html 5 era consone dichiarare una dtd ecco cosa vuol dire validare (X)HTML https://www.html.it/pag/15846/validare-lxhtml/
    Mentre in html 5 il minimo possibile (altrimenti non è markup html valido)
    codice HTML:
    <!DOCTYPE html>
    <html>
    
    <head>
    	<title>An HTML standard template</title>
    	<meta charset="utf-8"  />
    </head>
    
    <body>
    
         <p>… Your HTML content here …</p>
    
    </body>
    </html>
    Tag br html5 https://www.w3.org/TR/2011/WD-html5-...r-element.html
    Ultima modifica di darbula; 09-01-2022 a 19:04

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si la mia pagina è in utf-8

    in ogni caso sto provando con il tuo codice ma non mi va ugualmente esce solo il primo "paragrafo" e cioe' quello delle piscine, forse perche' lo tengo nel ciclo while?

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Se dentro il while il codice è iterato n volte. Il pattern #</h3>#si cerca tra maiuscola/minuscola ogni occorrenza del pattern della stringa passata (cioè tutti i tuoi tag di chiusura h3 dentro il while).
    Cambia $string con $descrizione (cioè quello che recuperi dal database).
    Ultima modifica di darbula; 09-01-2022 a 20:35

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si ma ho provato a sostituire $string con $descrizione, non va
    In ogni caso il campo descrizione è cosi:

    https://pasteboard.co/id5S2s2EsZjP.png

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Ah scusa va aggiunto il modificatore m se deve cercare anche dopo "\r\n".
    Codice PHP:
    $i 0;
    $riga['descrizione'] = '<h3 class="h3">Piscine</h3>Lorem ipsum';
    $riga['descrizione'] = $riga['descrizione'] . "\r\n" 'altro testo con a capo' "\r\n" "\r\n\r\n\r\n" '<h3 class="h3">Camere</h3>Lorem ipsum';
    while(!
    is_null($i)) {
    if(
    == $i)
    $i NULL;
    $riga['descrizione'] = preg_replace('#</h3>#mi'"</h3>\r\n<br>"$riga['descrizione']);
    echo(
    urlencode($riga['descrizione'])); // dopo il titolo tag h3 output con "\r\n" e tag br, se servito in x/html si vedrà a capo del tag br , mentre per vedere esattamente il codice sorgente per il <br /> impostare header a text/plain.
    if(!is_null($i))
    ++
    $i;

    Simulazione del ciclo while per una iterazione con stringa con più a capo. Uso urlencode per evitare di non capirci, %0D è il carrige return "\r" e %0A è il new lines "\n". (Aggiungo il <br> di html5 solo dopo "\r\n" che a sua volta sono dopo del tag h3 di chiusura). Però secondo me ci sta il tag p (<p>testo</p>).

    https://www.w3.org/TR/2011/WD-html5-...r-element.html
    codice HTML:
    <p>P. Sherman<br>
    42 Wallaby Way<br>
    Sydney</p>
    Ultima modifica di darbula; 09-01-2022 a 22:01

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 © 2024 vBulletin Solutions, Inc. All rights reserved.