/ 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
Ny linje i txt fil
Fra : -Martin-


Dato : 27-07-02 04:22

Hejsa ...

Jeg har et mindre problem.

Hvis vi nu siger at
$ting = "en laaaaaaaaaang tekst";

Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
delt efter x antal tegn ?

txt filen vil så komme til at indeholde dette:
(foruden --- txt filen --)

-- txt filen --
en laaaaa
aaaaaang
tekst

 
 
-Martin- (27-07-2002)
Kommentar
Fra : -Martin-


Dato : 27-07-02 04:25

On Sat, 27 Jul 2002 05:22:03 +0200, -Martin-
<martin_aarhof[DONT]@SPAMhotmail.com> wrote:

>Hejsa ...
>
>Jeg har et mindre problem.
>
>Hvis vi nu siger at
>$ting = "en laaaaaaaaaang tekst";
>
>Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
>delt efter x antal tegn ?
>
>txt filen vil så komme til at indeholde dette:
>(foruden --- txt filen --)
>
>-- txt filen --
>en laaaaa
>aaaaaang
>tekst

OG det skal selvfølgelig IKKE dele ord midtover

Jacob Bunk Nielsen (27-07-2002)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 27-07-02 14:52

-Martin- <martin_aarhof[DONT]@SPAMhotmail.com> writes:
> -Martin- wrote:
>
>>Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
>>delt efter x antal tegn ?
>
> OG det skal selvfølgelig IKKE dele ord midtover

Det letteste er nok at lave en funktion der gør det.

Her er noget C-lignende pseudokode til en funktion der kan det, så kan
du selv implementere det i PHP (eller noget andet, hvis du skulle have
lyst :):

WordWrap(tekst, linjeLængde)
int strpos = 0
int strpos_orig = 0
char c
while (strpos < strlen(tekst) - linjeLængde)
strpos_orig = strpos = strpos + linjeLængde
for (c = tekst[strpos];
c not in skilletegn; /* fx mellemrum, linjeskift osv. */
c = tekst[strpos])
strpos = strpos - 1
if (strpos <= strpos_orig)
error("Argh - det var et langt ord")
exit FAILED /* fejlhåndtering ! */
InsertIntoTextAtPosition(strpos, "\n");
return tekst

.... bugs included for free.

Det burde kunne skrives næsten lige så kort i PHP.

Er man mere i humør til at bruge de indbyggede funktioner, så kan man
bruge <http://www.dk.php.net/manual/en/function.wordwrap.php>, men det
antog jeg at du ikke var interesseret i eftersom du ikke bare har
brugt den.

--
Jacob - www.bunk.cc
To err is human, to forgive unusual.

-Martin- (27-07-2002)
Kommentar
Fra : -Martin-


Dato : 27-07-02 16:35

On Sat, 27 Jul 2002 15:51:55 +0200, Jacob Bunk Nielsen <spam@bunk.cc>
wrote:

>-Martin- <martin_aarhof[DONT]@SPAMhotmail.com> writes:
>> -Martin- wrote:
>>
>>>Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
>>>delt efter x antal tegn ?
>>
>> OG det skal selvfølgelig IKKE dele ord midtover
>
>Det letteste er nok at lave en funktion der gør det.
>
>Her er noget C-lignende pseudokode til en funktion der kan det, så kan
>du selv implementere det i PHP (eller noget andet, hvis du skulle have
>lyst :):
>
>WordWrap(tekst, linjeLængde)
> int strpos = 0
> int strpos_orig = 0
> char c
> while (strpos < strlen(tekst) - linjeLængde)
> strpos_orig = strpos = strpos + linjeLængde
> for (c = tekst[strpos];
> c not in skilletegn; /* fx mellemrum, linjeskift osv. */
> c = tekst[strpos])
> strpos = strpos - 1
> if (strpos <= strpos_orig)
> error("Argh - det var et langt ord")
> exit FAILED /* fejlhåndtering ! */
> InsertIntoTextAtPosition(strpos, "\n");
> return tekst

Puhaa nu er jeg ikk den bedste til hverken PHP eller C - Men
prøver at finde rundt i det


>
>... bugs included for free.
>
>Det burde kunne skrives næsten lige så kort i PHP.
>
>Er man mere i humør til at bruge de indbyggede funktioner, så kan man
>bruge <http://www.dk.php.net/manual/en/function.wordwrap.php>, men det
>antog jeg at du ikke var interesseret i eftersom du ikke bare har
>brugt den.

Hmm ... jeg vidste ikk der fandtes en funktion til det - Tror lige
jeg ska have kigget lidt på den måske

Ukendt (27-07-2002)
Kommentar
Fra : Ukendt


Dato : 27-07-02 17:41

[SNIP]

Så nu kom jeg lidt længere, men fandt en lille fejl!
txt filen BURDE indeholde følgende

der gælder til søndag aften, udsendt kl. 17.30:
I aften og i nat efterhånden klart vejr de fleste steder. Temp. ned
mellem 12 og 17 grader, og svag til jævn vind fra syd og sydøst.
Søndag tørt og solrigt med temp. mellem 25 og 30 grader, og svag til
jævn vind fra sydøst.

MEN den indeholder dog KUN

(2 tomme linjer)
der
gælder
til
søndag
aften,

Er der en der kan forklare mig HVORFOR ?

Den funktion som laver rod i det ser således ud:

function limit_text($text,$maxchar){
$split=explode(" ",$text);
$i=0;
while(TRUE){
$len=(strlen($newtext)+strlen($split[$i]));
if($len>$maxchar){
break;
}else{
$newtext=$newtext."\n".$split[$i];
$i++;
}
}
return $newtext;
}

Ukendt (27-07-2002)
Kommentar
Fra : Ukendt


Dato : 27-07-02 17:45

Lidt mere forklaring

>[SNIP]
>
>Så nu kom jeg lidt længere, men fandt en lille fejl!
>txt filen BURDE indeholde følgende
>
>der gælder til søndag aften, udsendt kl. 17.30:
>I aften og i nat efterhånden klart vejr de fleste steder. Temp. ned
>mellem 12 og 17 grader, og svag til jævn vind fra syd og sydøst.
>Søndag tørt og solrigt med temp. mellem 25 og 30 grader, og svag til
>jævn vind fra sydøst.

Vejrudsigten står på 1 linje, og den ska så ned på x antal linjer ...
fx efter 30 tegn ska den lave en en ny linje... DOG må den
selvfølgelig IKKE hakke ord i stykker!


>Den funktion som laver rod i det ser således ud:
>
>function limit_text($text,$maxchar){
> $split=explode(" ",$text);
> $i=0;
> while(TRUE){
> $len=(strlen($newtext)+strlen($split[$i]));
> if($len>$maxchar){
> break;
> }else{
> $newtext=$newtext."\n".$split[$i];
> $i++;
> }
> }
>return $newtext;
>}

Funktionen fandt jeg under php.net/wordwrap i en af kommentarene, som
lignede lidt ala det jeg skulle bruge den til ... men den laver dog
lidt kage i den .. Ved ikke helt hvor problemet er i den

Jette (27-07-2002)
Kommentar
Fra : Jette


Dato : 27-07-02 20:26

"-Martin-" skrev:
[klip]
> Funktionen fandt jeg under php.net/wordwrap i en af kommentarene, som
> lignede lidt ala det jeg skulle bruge den til ... men den laver dog
> lidt kage i den .. Ved ikke helt hvor problemet er i den

Hej Martin

Jeg fandt denne funktion et sted på nettet, og den fungerer fint for mig



function textwrap ($String, $breaksAt, $breakStr, $padStr="") {
$newString="";
$lines=explode($breakStr, $String);
$cnt=count($lines);
for($x=0;$x<$cnt;$x++){
if(strlen($lines[$x])>$breaksAt){
$str=$lines[$x];
while(strlen($str)>$breaksAt){
$pos=strrpos(chop(substr($str, 0, $breaksAt)), " ");
if ($pos == false) {
break;
}
$newString.=$padStr.substr($str, 0, $pos).$breakStr;
$str=trim(substr($str, $pos));
}
$newString.=$padStr.$str.$breakStr;
}
else{
$newString.=$padStr.$lines[$x].$breakStr;
}
}
return $newString;

}


Mvh. Jette

--
Ny bruger af dk.fritid.dyr.kat? Opret din profil og se andres på
gruppens hjemmeside http://www.dk-fritid-dyr-kat.dk



Ukendt (28-07-2002)
Kommentar
Fra : Ukendt


Dato : 28-07-02 02:16

>function textwrap ($String, $breaksAt, $breakStr, $padStr="") {
> $newString="";
> $lines=explode($breakStr, $String);
> $cnt=count($lines);
> for($x=0;$x<$cnt;$x++){
> if(strlen($lines[$x])>$breaksAt){
> $str=$lines[$x];
> while(strlen($str)>$breaksAt){
> $pos=strrpos(chop(substr($str, 0, $breaksAt)), " ");
> if ($pos == false) {
> break;
> }
> $newString.=$padStr.substr($str, 0, $pos).$breakStr;
> $str=trim(substr($str, $pos));
> }
> $newString.=$padStr.$str.$breakStr;
> }
> else{
> $newString.=$padStr.$lines[$x].$breakStr;
> }
> }
> return $newString;
>
>}

Hmm ... Kan du ikk lige fortælle mig hva de 4 strenge skal være

$string = Vejret selvfølgelig
$breaksAt = ??
$breaksStr = ??
$padStr = ??

Jacob Bunk Nielsen (27-07-2002)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 27-07-02 17:07

-Martin- <martin_aarhof[DONT]@SPAMhotmail.com> writes:
> On Sat, 27 Jul 2002 15:51:55 +0200, Jacob Bunk Nielsen <spam@bunk.cc>
> wrote:
>>
>>Her er noget C-lignende pseudokode til en funktion der kan det, så kan
>>du selv implementere det i PHP [ ... ]
>
> Puhaa nu er jeg ikk den bedste til hverken PHP eller C - Men
> prøver at finde rundt i det

OK - jeg troede det var selve algoritmen du havde problemer
med. Sproget jeg har brugt er bare et pseudosprog. Den slags er
praktisk når man skal vise algoritmer, hvor de små tekniske detaljer
ikke er så relevante.

At det lige kom til at ligne C skyldes at det er det sidste jeg har
kodet intensivt

> Hmm ... jeg vidste ikk der fandtes en funktion til det - Tror lige
> jeg ska have kigget lidt på den måske

Check altid manualen for om der findes en funktion der kan det du
søger. Der er *rigtig* mange funktioner indbygget i PHP til mærkelige
ting.

--
Jacob - www.bunk.cc
And now for something completely different.

Ukendt (27-07-2002)
Kommentar
Fra : Ukendt


Dato : 27-07-02 17:46

On Sat, 27 Jul 2002 18:06:46 +0200, Jacob Bunk Nielsen <spam@bunk.cc>
wrote:

>Check altid manualen for om der findes en funktion der kan det du
>søger. Der er *rigtig* mange funktioner indbygget i PHP til mærkelige
>ting.

Plejer jeg også at gøre, meeen nu er der jo 10000mio forskellige
funktioner, og hvis man så lige skal finde 1 funktion, så kan det jo
være svært at se skoven for bare træer

Søg
Reklame
Statistik
Spørgsmål : 177520
Tips : 31968
Nyheder : 719565
Indlæg : 6408659
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste