/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Fjerne tekst i variabel
Fra : Michael Salomonsen


Dato : 14-02-08 22:40

Jeg har en variabel - lad os kalde den $tekst hvor der ligger en masse
tekst til visning på en side. I midlertid er der nogle stedet i
teksten indsat flere <br> koder efter hinanden. Hvordan får jeg
nemmest fjernet disse, så der max står 2 i træk (de må nemlig gerne så
i teksten, men højest så de danner et afsnit når den vises)

-Michael

 
 
Bertel Lund Hansen (14-02-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 14-02-08 22:55

Michael Salomonsen skrev:

> Jeg har en variabel - lad os kalde den $tekst hvor der ligger en masse
> tekst til visning på en side. I midlertid er der nogle stedet i
> teksten indsat flere <br> koder efter hinanden. Hvordan får jeg
> nemmest fjernet disse, så der max står 2 i træk (de må nemlig gerne så
> i teksten, men højest så de danner et afsnit når den vises)

Det lyder forkert. I HTML er det ikke tilladt at have to <br> ved
siden af hinanden. Hvis du vil have et mellemrum i teksten, skal
du indeslutte afsnittene i <p> og </p>

str_replace() kan det du efterspørger:

   while (strpos($text,'<br><br><br>')!==false)
$new_text=str_replace('<br><br><br>','<br><br>',$text);

while-løkken tager højde for at én erstatning godt kan efterlade
tre br på stribe (f.eks. hvis der var 5 på stribe).

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Bertel Lund Hansen (14-02-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 14-02-08 23:19

Bertel Lund Hansen skrev:

>    while (strpos($text,'<br><br><br>')!==false)
> $new_text=str_replace('<br><br><br>','<br><br>',$text);

Ups, der var jeg lidt for hastig.

   while (strpos($text,'<br><br><br>')!==false)
      $text=str_replace('<br><br><br>','<br><br>',$text);

Det skal være samme variabel ($text).

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Dan Storm (15-02-2008)
Kommentar
Fra : Dan Storm


Dato : 15-02-08 08:41

Bertel Lund Hansen skrev:
> Det lyder forkert. I HTML er det ikke tilladt at have to <br> ved
> siden af hinanden. Hvis du vil have et mellemrum i teksten, skal
> du indeslutte afsnittene i <p> og </p>

Hvad mener du med at det ikke er tilladt?
Mener du det ikke validerer?
--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Bertel Lund Hansen (15-02-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 15-02-08 13:42

Dan Storm skrev:

> Hvad mener du med at det ikke er tilladt?
> Mener du det ikke validerer?

Det troede jeg ikke, men jeg har lige testet, og det er lovligt
nok.

Jeg husker fra gammel tid at sådan gør man ikke. Det var måske
noget med at man ikke kunne være sikker på hvordan det blev vist.

Under alle omstændigheder er det ulogisk.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Dan Storm (15-02-2008)
Kommentar
Fra : Dan Storm


Dato : 15-02-08 14:25

Bertel Lund Hansen skrev:
> Jeg husker fra gammel tid at sådan gør man ikke. Det var måske
> noget med at man ikke kunne være sikker på hvordan det blev vist.

Førhen brugte man det til at fremtvinge et vertikalt mellemrum, og som
du selv siger, så var problemet at browserne tolkede det forskelligt.

> Under alle omstændigheder er det ulogisk.

Enig.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Birger (15-02-2008)
Kommentar
Fra : Birger


Dato : 15-02-08 20:56

"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev i en meddelelse
news:912br39vrlajq49p3iq9hrd5ct3d7kuus4@4ax.com...
> Dan Storm skrev:
>
>> Hvad mener du med at det ikke er tilladt?
>> Mener du det ikke validerer?
>
> Det troede jeg ikke, men jeg har lige testet, og det er lovligt
> nok.
>
> Jeg husker fra gammel tid at sådan gør man ikke. Det var måske
> noget med at man ikke kunne være sikker på hvordan det blev vist.
>
> Under alle omstændigheder er det ulogisk.
>


Mindes noget om, at en ny linie bliver behandlet som whitespace - i hvert
fald af visse browsere - og det derfor ingen effekt har/havde, at sætte mere
end eet <br>, med mindre man også giver en tekst.
F.eks.
<br>&nbsp;<br>

Mener i øvrigt, at det må være mere logisk at bruge en paragraf til
paragraffer og ny linie til at indsætte nye linier.
Eller at 2 nye linier ikke er det samme som en paragraf... ;>)

Pak hele teksten ind i <p>...</p>, og erstat 2, 3, 17 eller hvor mange <br>
der nu er, med </p><p>

Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.



Peter Brodersen (14-02-2008)
Kommentar
Fra : Peter Brodersen


Dato : 14-02-08 23:55

On Thu, 14 Feb 2008 22:40:02 +0100, Michael Salomonsen
<michaels@notvalid.multicom.dk> wrote:

>Hvordan får jeg
>nemmest fjernet disse, så der max står 2 i træk (de må nemlig gerne så
>i teksten, men højest så de danner et afsnit når den vises)

$text = preg_replace('/(<br>){3,}/','<br><br>',$text);

--
- Peter Brodersen
Kendt fra Internet

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste