1) $array = explode(" ", $var); //Deler en variabel op ved mellemrum og lægger hvert ord i en streng for sig selv. $antal_tegn = strlen($array[1]); //Returnere antal tegn i variabel.
2) <? header("Cache-control: no-cache, must-revalidate"); header("Pragma: no-cache"); ?> Gør at siden ikke bliver cached. Skal stå absolut øverst i din fil.
3) htmlentities($var); //Gør at html tags bliver skrevet som normal tekst.
Til 1) Hvordan skal man løbe arrayet igennem for at tjekke alle ordene? Sådan her:
for($ord=0;$ord<=$array(????);$ord++){ $antal_tegn = strlen($array[$ord]); if($antal_tegn>=15){ echo "Ordet er for langt bla bla"; } } Er det den rigtige måde eller er jeg helt galt på den? Jeg mangler længden på arrayet så løkken kan stoppe.
Jeg har vist en dårlig dag:-/ Kan ikke få skidtet til at virke... Mit lille script ser ud som flg:
$array = explode(" ", $tekst); for($ord=0;$ord<=count($array);$ord++){ $antal_tegn=strlen($array[$ord]); if($antal_tegn>=20){ $godkendt=false; } } if($godkendt==false){ echo "Du har indtastet et for langt ord"; }else{ ...
Desuden virker nl2br($tekst) eller htmlentities($tekst) ikke til linjeskift heller ikke? Har jeg sat den ind et forkert sted? Umiddelbart før ovennævnte script.
Det hele virker ok nu - jeg vil bare OGSÅ gerne betragte linjeskift som et mellemrum: $array = explode(" ", $tekst); Kam man ikke tilføje flere mulige 'skel' udover " "?
Hvis du skal indsætte i en database, vil jeg anbefale at du venter med at lave nl2br() til du henter dataene ud igen. Så kan du bruge dataene til andet end web og du gemmer ikke mere eller andet end brugeren har indtastet (du gemmer "originalen")
Men nej ovenstående duer ikke. nl2br er en funktion der returnerer den rettede tekst så du skal lave:
$tekst = nl2br($tekst);
Hvis du fastholder at du vil formattere teksten FØR indsættelsen.
$tekst = nl2br($tekst) ...virker fint nu - jeg kunne bare ikke se i aftes, hvor jeg vist var lidt halvtræt. Problemet er nu, at jeg gerne vil dele teksten op i ord, både ved mellemrum og ved linjeskift samtidigt. Altså når jeg skal måle længden på ordene i $tekst, så skiller den også ved et linjeskift og ikke bare et mellemrum? Kan man smide flere strings ind i explode(" ", $tekst)?
1> Du kan kigge på www.php.net/wordwrap så kan du sige at hvis et ord er mere end 20 tegn langt kan den opdele med "-" eller hvad end du lyster.
2> Her kan du kigge på www.php.net/strip_tags og selv vælge hvilke tags du ønsker 'lovlige'. Hvis de ikke er lovlige fjernes de fra strengen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.