/ 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
Tælle antal linier
Fra : newsbin


Dato : 26-01-09 09:09

Jeg henter tekst i MySql db med "$pltxt", som placeres i en HTML frame.
Tekst skal placeres med CSS efter hvor mange linier der er i teksten.
Der kan forekomme mellem 0 - 150 karakterer i teksten, og jeg kan ikke
anvende at tælle antal karakterer, da de fylder forskelligt fra tekst til
tekst.

Kan antal linier tælles med php?

--
Aagaard



 
 
newsbin (26-01-2009)
Kommentar
Fra : newsbin


Dato : 26-01-09 09:41

> Jeg henter tekst i MySql db med "$pltxt", som placeres i en HTML frame.
> Tekst skal placeres med CSS efter hvor mange linier der er i teksten.
> Der kan forekomme mellem 0 - 150 karakterer i teksten, og jeg kan ikke
> anvende at tælle antal karakterer, da de fylder forskelligt fra tekst til
> tekst.
>
> Kan antal linier tælles med php?
>
Glemte lige at fortælle hvordan tekst hentes til udskrift:
<td>
<?php
eval("\$x_Siden = \"$x_Siden\";");
echo $x_Siden;
?>
</td>

$pltxt er den tekststreng hvor linier skal tælles.
$pltxt er indeholdt i $x_Siden, der hentes i MySql.

--
Aagaard



Dan Storm (26-01-2009)
Kommentar
Fra : Dan Storm


Dato : 26-01-09 10:08

newsbin skrev:
> Glemte lige at fortælle hvordan tekst hentes til udskrift:
> <td>
> <?php
> eval("\$x_Siden = \"$x_Siden\";");
> echo $x_Siden;
> ?>
> </td>
>

er der nogen speciel grund til at du bruger eval() (læs: sikkerhedshul)
til den streng?

> $pltxt er den tekststreng hvor linier skal tælles.
> $pltxt er indeholdt i $x_Siden, der hentes i MySql.

$pltxt er ikke angivet i den kode du har vist ovenfor.
Forsøg dig med noget ala:

<?php
   //Del linierne op i et array
   $lines = explode("\n", $dinStreng);
   //Tæl array forekomster
   $noLines = count($lines);
?>


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

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

newsbin (26-01-2009)
Kommentar
Fra : newsbin


Dato : 26-01-09 15:04

> er der nogen speciel grund til at du bruger eval() (læs: sikkerhedshul)
> til den streng?

Teksten jeg henter fra MySql indeholder både variabler, tekst og HMTL,
f.eks:
$x_Siden = "Tak for din mail, $mailfra.<br>
<div class=\"styletre\">Vi har modtaget den, $datofradig<br></div>
<div class=\"styletreto\">$pltxt</div>";

eval() bruges efter råd her fra gruppen.
Koden afvikles på et områder, der er beskyttet af session login med flere
parametre og exit(), hvis disse ikke er opfyldt.
Resultatet printes ud via browser, efter at være visuelt kontrolleret, og
skal kun bruges 1 gang.

>> $pltxt er den tekststreng hvor linier skal tælles.
>> $pltxt er indeholdt i $x_Siden, der hentes i MySql.
>
> $pltxt er ikke angivet i den kode du har vist ovenfor.
> Forsøg dig med noget ala:
>
> <?php
> //Del linierne op i et array
> $lines = explode("\n", $dinStreng);
> //Tæl array forekomster
> $noLines = count($lines);
> ?>
Det har jeg forsøgt i flere varianter med \n, \r og <br>, men det virker
ikke. $noLines = "1" uanset hvor mange linier der er indeholdt i $pltxt.
Serveren er en WinK2AS.

Jeg tror løsningen ligger i at simulere en formatteret form, og så tælle
linierne i denne. Det vil jeg arbejde lidt mere på.
--
Aagaard



Dan Storm (26-01-2009)
Kommentar
Fra : Dan Storm


Dato : 26-01-09 19:28

newsbin skrev:
> Teksten jeg henter fra MySql indeholder både variabler, tekst og HMTL,
> f.eks:
> $x_Siden = "Tak for din mail, $mailfra.<br>
> <div class=\"styletre\">Vi har modtaget den, $datofradig<br></div>
> <div class=\"styletreto\">$pltxt</div>";
>
> eval() bruges efter råd her fra gruppen.

Jeg tror det handler om du har fået serveret et nødløsning; det er i
hvert fald ikke tilrådeligt.

> Koden afvikles på et områder, der er beskyttet af session login med flere
> parametre og exit(), hvis disse ikke er opfyldt.
> Resultatet printes ud via browser, efter at være visuelt kontrolleret, og
> skal kun bruges 1 gang.

Det undrer mig at du ikke har brugt din tid på at sikre din løsning et
mere sikkert alternativ istedet.
F.eks. ville du opnå samme resultat med str_replace() uden et
sikkerhedshul som eval() byder dig:
$x_Siden = str_replace("[MAILFRA]", $mailfra, $x_Siden);
$x_Siden = str_replace("[DATOFRA]", $datofradig, $x_Siden);
$x_Siden = str_replace("[PLTXT]", $pltxt, $x_Siden);

Nemt...

> Det har jeg forsøgt i flere varianter med \n, \r og <br>, men det virker
> ikke. $noLines = "1" uanset hvor mange linier der er indeholdt i $pltxt.
> Serveren er en WinK2AS.

Prøv med $lines = explode("\r\n", $dinStreng);
Jeg er ret sikker på win32 benytter sig af \r\n.

> Jeg tror løsningen ligger i at simulere en formatteret form, og så tælle
> linierne i denne. Det vil jeg arbejde lidt mere på.

Aha...


--
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!

Kim Ludvigsen (26-01-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 26-01-09 11:11

newsbin skrev:

> Tekst skal placeres med CSS efter hvor mange linier der er i teksten.
> Der kan forekomme mellem 0 - 150 karakterer i teksten, og jeg kan ikke
> anvende at tælle antal karakterer, da de fylder forskelligt fra tekst til
> tekst.

Jeg kan desværre ikke hjælpe med det tekniske, men som jeg
ser det, giver dit spørgsmål ingen mening. Som du selv er
inde på, fylder de forskellige karakterer ikke lige meget.
Og hvis linjerne skal have en fast længde, er du også
afhængig af, hvilken skrifttype og -størrelse der benyttes.
Og sidstnævnte kan du ikke nødvendigvis styre.

--
Mvh. Kim Ludvigsen
http://pc-sikkerhed.dk

newsbin (26-01-2009)
Kommentar
Fra : newsbin


Dato : 26-01-09 14:34

> Jeg kan desværre ikke hjælpe med det tekniske, men som jeg ser det, giver
> dit spørgsmål ingen mening. Som du selv er inde på, fylder de forskellige
> karakterer ikke lige meget. Og hvis linjerne skal have en fast længde, er
> du også afhængig af, hvilken skrifttype og -størrelse der benyttes. Og
> sidstnævnte kan du ikke nødvendigvis styre.
>
Skriftype og -størrelse styres med CSS, og det er ingen problemer i.
Det fungerer 100% som det skal, både til skærmvisning og til print.

--
Aagaard



Kim Ludvigsen (26-01-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 26-01-09 15:27

newsbin skrev:
>> Jeg kan desværre ikke hjælpe med det tekniske, men som jeg ser det, giver
>> dit spørgsmål ingen mening. Som du selv er inde på, fylder de forskellige
>> karakterer ikke lige meget. Og hvis linjerne skal have en fast længde, er
>> du også afhængig af, hvilken skrifttype og -størrelse der benyttes. Og
>> sidstnævnte kan du ikke nødvendigvis styre.
>>
> Skriftype og -størrelse styres med CSS, og det er ingen problemer i.
> Det fungerer 100% som det skal, både til skærmvisning og til print.

Du kan ikke bestemme skriftstørrelsen 100%. Det er ganske
ofte, at jeg forstørrer skriftstørrelsen på hjemmesider,
fordi mange sider har en dårlig vane med at vælge
størrelser, der er ulæselige på min skærm med en
1600x1200-opløsning.

Så hvis du laver plads til et antal linjer ud fra antal
tegn, og jeg forstørrer teksten, så vil det uundgåeligt
komme til at fylde flere linjer, end du regner med (og
linjerne vil sandsynligvis fylde mere i højden). Spørgsmålet
er så, hvad du gør ved de "overskydende" linjer - altså om
de skjules, eller om de blot kommer til at ødelægge dit layout.

Du er velkommen til at lave en prøveside, så skal jeg gerne
tage et skærmbillede, der viser problemet.

--
Mvh. Kim Ludvigsen
http://pc-sikkerhed.dk

newsbin (26-01-2009)
Kommentar
Fra : newsbin


Dato : 26-01-09 17:35

> Du kan ikke bestemme skriftstørrelsen 100%. Det er ganske ofte, at jeg
> forstørrer skriftstørrelsen på hjemmesider, fordi mange sider har en
> dårlig vane med at vælge størrelser, der er ulæselige på min skærm med en
> 1600x1200-opløsning.

Jo, det kan jeg godt. Til mit formål!
Det er ikke til en hjemmeside, men til korrekturlæsning på skærm, og
udskrift på laserprinter.
Jeg har ikke brug for at forstørre eller formindske, men jeg har brug for,
at det jeg ser på skærmen er 100% identisk med det der kommer ud på print,
og det er det.
Alle ved da godt, at opløsningen på en skærm er meget ringere end på en
printer, og her er det jo det færdige resultat på print, der tæller. Om tegn
står lidt unøjagtigt på skærmen, er ligegyldigt, blot ombrydningen af ord er
som på print, og det er de.
Det virker som det skal, og alt output er styret med CSS, både på skærm og
på print.

--
Aagaard



Philip Nunnegaard (26-01-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 26-01-09 18:25

"newsbin" <none@none.xx> skrev

> Jo, det kan jeg godt. Til mit formål!

Ja, dette "Til mit formål" skulle nok med.

Ellers tror jeg nok at Kim Ludvigsen udtalte sig ud fra at din side skulle
vises hos andre end kun dig.
Og her har han helt ret.

Nedenstående går ud fra at jeg ikke kender slutbrugeren:
Selv hvis folk har angivet skriftstørrelsen i pixels, kan jeg forstørre det
op og ned som det passer mig i Firefox ved blot at holde ctrl-tasten nede og
dreje på rullehjulet på min mus.

Skrifttype kan man heller ikke styre 100%, hvis vi antager at vi ikke kender
slutbrugeren.
Jeg ved ikke hvilke skrifttyper personen har installeret på sin computer.
Det må, så vidt jeg kan regne ud, gælde både på skærm og print.

> Det er ikke til en hjemmeside, men til korrekturlæsning på skærm, og
> udskrift på laserprinter.

Det ændrer selvfølgelig på forudsætningerne såfremt du er eneste bruger af
systemet.


Kim Ludvigsen (27-01-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 27-01-09 00:45

Philip Nunnegaard skrev:
> "newsbin" <none@none.xx> skrev
>
>> Jo, det kan jeg godt. Til mit formål!
>
> Ellers tror jeg nok at Kim Ludvigsen udtalte sig ud fra at din side
> skulle vises hos andre end kun dig.

Nemlig. Jeg havde ikke skænket det en tanke, at siden kunne
være til lokal brug.

--
Mvh. Kim Ludvigsen
http://pc-sikkerhed.dk

Philip Nunnegaard (27-01-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 27-01-09 08:27

"Kim Ludvigsen" <usenet@kimludvigsen.dk> skrev

> Nemlig. Jeg havde ikke skænket det en tanke, at siden kunne være til lokal
> brug.

Jeg har selv "hjemmesider" som jeg kun kører lokalt, og hvor jeg til for
nylig udelukkende tilgodeså mig selv (og kun min egen foretrukne browser).
Nærmest en slags legeplads, hvor alt er tilladt. En tredjedel af
eksperimenterne bruger jeg måske senere på nettet. Resten droppes inden det
når så langt, fordi jeg finder ud af at det er noget hø.

Min startside er en php-fil på localhost, hvor jeg dels har links til de
sider jeg besøger mest samt localhost-udgaverne af mine egne sider og
phpMyAdmin, og dels kan se på hvilke dage jeg ifølge den faste turnus skal
på arbejde de næste 4 uger.


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

Månedens bedste
Årets bedste
Sidste års bedste