webForumDet fria alternativet

Hur få in html i en php-text?

6 svar · 497 visningar · startad av Danne V

Danne VMedlem sedan aug. 20068 090 inlägg
#1

Jag har en språkfil med svenska till en applikation. En sträng ser ut så här:

$lll["remind_me_pw"]="Glömt användarnamn och/eller lösenord? Klicka här så skickar vi ditt användarnamn och ett NYTT lösenord.";

Nu skulle jag vilja lägga in en radbrytning (se slutet första raden):

$lll["remind_me_pw"]="Glömt användarnamn och/eller lösenord?<br />
Klicka här så skickar vi ditt användarnamn och ett NYTT lösenord.";

Men då syns tyvärr taggen, och ingen radbrytning exekveras.

Vad göra?

The_HulkMedlem sedan juni 20031 837 inlägg
#2

Det bör fungera som du har försökt. Hur ser koden ut som skrivet ut texten?
Förmodligen konverterar skriptet html-koderna i texterna innan de skrivs ut.

Danne VMedlem sedan aug. 20068 090 inlägg
#3

The_Hulk skrev:

Det bör fungera som du har försökt. Hur ser koden ut som skrivet ut texten?
Förmodligen konverterar skriptet html-koderna i texterna innan de skrivs ut.

Duh..kollade inte förut.
Taggen görs om till ascii:

Glömt användarnamn och/eller lösenord?&lt;br /&gt;
Klicka här så skickar vi ditt användarnamn och ett NYTT lösenord.

Bör jag inte omsluta hela br-taggen med php-taggar av nåt slag (märks det att jag inte vet ett skit om php :p )

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Använder du dig av htmlspecialchars eller htmlentities vid utskrift av meddelandet? Isåfall har du två val: (Om du vill göra det enkelt för dig)

  1. Ge f*n i att använda de funktionerna. Dock bör du alltid filtrera data angivet av användare genom den funktionen för att undvika säkerhetshål. Data du själv anger i config-filer får väl däremot anses som säkert.
  2. Använd funktionen nl2br och strunta i att skriva ut br-taggen i strängdefinitionen.
$lll["remind_me_pw"]="Glömt användarnamn och/eller lösenord?\nKlicka här så skickar vi ditt användarnamn och ett NYTT lösenord."; 
echo nl2br(htmlspecialchars($lll["remind_me_pw"]));

Justja, du kan även använda \n istället för en riktig radbrytning i en sträng, men bara om du definierar strängen med dubbelfnuttar.

Danne VMedlem sedan aug. 20068 090 inlägg
#5

nitro2k01 skrev:

Använder du dig av htmlspecialchars eller htmlentities vid utskrift av meddelandet? Isåfall har du två val: (Om du vill göra det enkelt för dig)

  1. Ge f*n i att använda de funktionerna. Dock bör du alltid filtrera data angivet av användare genom den funktionen för att undvika säkerhetshål. Data du själv anger i config-filer får väl däremot anses som säkert.
  2. Använd funktionen nl2br och strunta i att skriva ut br-taggen i strängdefinitionen.
$lll["remind_me_pw"]="Glömt användarnamn och/eller lösenord?\nKlicka här så skickar vi ditt användarnamn och ett NYTT lösenord."; 
echo nl2br(htmlspecialchars($lll["remind_me_pw"]));

Justja, du kan även använda \n istället för en riktig radbrytning i en sträng, men bara om du definierar strängen med dubbelfnuttar.

Öhhh... Tack! Jag begrep tyvärr inte mycket av det där. :r

Testade i alla fall, och det funkade tyvärr inte. Fortfarande en enda rad. Men däremot dök exakt samma text upp även allra högst upp på sidan - med radbrytningen. :p

Egentligen är det ingen ko på isen med detta. Det är snarare mitt estetiska öga som vill ha texten på två rader. Det funkar bra med en enda.

The_HulkMedlem sedan juni 20031 837 inlägg
#6

Kan du visa oss php-koden som skriver ut texten?

Danne VMedlem sedan aug. 20068 090 inlägg
#7

The_Hulk skrev:

Kan du visa oss php-koden som skriver ut texten?

Om jag kunde slänga upp den på en minut skulle jag gärna göra det. Men har ingen aning om vart den genereras och orkar/hinner/vill inte gå igenom hela sajten för den här struntsakens skull.

Men om jag nån gång längre fram skulle snubbla över relevant kod så ska jag posta den.

Lyfter på hatten för dig och nitro som ville hjälpa. Tack tack. :bire

138 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)