Avatar billede ra__mus Nybegynder
29. maj 2005 - 19:11 Der er 12 kommentarer og
1 løsning

For få tegn i linie

hej eksperter.
Jeg vil gerne have 25 tegn med af noget tekst men får kun 21, hvad kan der være galt i nedenstående ??

if (! empty($row[aktivitet])) { 
                                                    $tmpvar = wordwrap($row["aktivitet"], 16, "<br>\n", 1);
                                                  if (strlen($row["aktivitet"]) > 16) {
                                                    $antal_tegn_du_vil_have_med = 25;  ?>
                                            <tr>
                                                <td  class="td22" style="border-left: 1px solid #B5C6B5" valign="top" style="border-bottom: 1px solid #B5C6B5" BgColor="#EDF1ED" align="left" width="35%">&nbsp;&nbsp;Aktivitet:</td>
                                                <td  BgColor="#EDF1ED" width="2%" style="border-bottom: 1px solid #B5C6B5">&nbsp;</td>
                                                <td  class="td26" colspan="2" style="border-right: 1px solid #B5C6B5" style="border-bottom: 1px solid #B5C6B5" BgColor="#EDF1ED" align="left" valign="top" width="63%"><?php echo substr( $tmpvar, 0, $antal_tegn_du_vil_have_med );?></td>
                                            </tr>
                                                                                    <? }
Avatar billede nielle Nybegynder
29. maj 2005 - 19:26 #1
Husk at du skal tælle de ekstra tegn, som dit kald til wordwrap, sætter ind i din tekststreng.
Avatar billede nielle Nybegynder
29. maj 2005 - 19:29 #2
... i dette her tilfælde de 5 tegn som "<br>\n" udgøre. 5 tegn fra dine 25  er tæt på de 21 tegn du har manglet.
Avatar billede ra__mus Nybegynder
29. maj 2005 - 19:40 #3
Hvis du ser på dette eksempel fra www.php.net, er det ikke rigtigt hvad du siger.. :

Example 1. wordwrap() example

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />\n");

echo $newtext;
?> 

This example would display:

The quick brown fox<br />
jumped over the lazy<br />
dog.
Avatar billede nielle Nybegynder
29. maj 2005 - 19:53 #4
$tmpvar = "The quick brown fox jumped over the lazy dog."
$antal_tegn_du_vil_have_med = 25;

$tempvar1 = substr($tmpvar, 0, $antal_tegn_du_vil_have_med);
echo $tempvar1;
// Giver: "The quick brown fox jumpe"

$tempvar2 = wordwrap($text, 20, "<br />\n");  // "The quick brown fox<br />\njumped over the lazy<br />\ndog."
echo $tempvar2;
// Giver: "The quick brown fox<br />" - og så kan du endda ikke se "<br />" i dit browservindue.
// Så du ser kun: "The quick brown fox" - 6 tegn "forsvuindet".
Avatar billede ra__mus Nybegynder
29. maj 2005 - 20:11 #5
nå okay det er ved substr det går galt. Hvorfor optager linieskiftet 6 tegn ???
Avatar billede nielle Nybegynder
29. maj 2005 - 20:21 #6
Fordi "<br />\n" netop er 7 tegn - "\n" tæller kun som et tegn. Det ene af disse 7 tegn vindes ind ved at det er et af mellemrummene som erstattes:

" " -> "<br />\n"

Der forsvinder et mellemrum, - 1 tegn. og kommer et "<br />\n", +7 tegn. Total +6 tegn.
Avatar billede ra__mus Nybegynder
30. maj 2005 - 00:24 #7
Når jeg skriver dette ud får jeg nogle gange <br med feks.,og det ser ikke særlig godt ud, kan det ikke undgåes ??
$tmpvar = wordwrap($row["aktivitet"],16,"<br />\n",1);
Avatar billede nielle Nybegynder
30. maj 2005 - 06:54 #8
Simpelt nok; Byt om på den rækkefølge hvor du kalder wordwrap(...) og substr(...)
Avatar billede ra__mus Nybegynder
30. maj 2005 - 08:10 #9
Det er du lige nødt til at uddybe :-)
Avatar billede ra__mus Nybegynder
30. maj 2005 - 08:25 #10
okay nu har jeg :
$teksten=substr( $row[aktivitet], 0, $antal_tegn_du_vil_have_med );           
$tmpvar = wordwrap($teksten, 16, "<br \>n", 1);
echo "$tmpvar ";
Men så tager skriver den bare n istedet ??
Avatar billede ra__mus Nybegynder
30. maj 2005 - 08:29 #11
ok en lille skrivefejl "<br />\n",
Avatar billede ra__mus Nybegynder
30. maj 2005 - 13:52 #12
læg et svar.. Mange tak for hjælpen :-)
Avatar billede nielle Nybegynder
30. maj 2005 - 17:58 #13
Nemlig. På den måde så sikre du faktisk også at din $antal_tegn_du_vil_have_med stemmer overens med "antal visuelle tegn", og at dette antal ikke forstyrres af om der nu tilfældigvis kom et, eller flere linjeskift, undervejs eller ej.

Og et svar :^)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester