/ 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
x antal tegn ??
Fra : Frank Madsen


Dato : 24-03-02 13:25

Hej,

Jeg har brug for hjælp til at få kortet en tekst ned til et antal tegn der
passer, og et antal som jeg nemt kan ændre ... jeghar forsøgt mig med
følgende koder, men ingen af dem virker, og jeg forstår det ikke nok til at
kunne se fejlen... Nogen der vil hjælpe ??


1:
<?php
$tegn = 500; //antal tegn du vil have med

if(strlen($tekst) > $tegn) {
   $forkortet = substr($tekst, 0, $tegn);
   for($i=$tegn; $tekst{$i} != "."; $i++) {
      $forkortet .= $tekst{$i};
   } $forkortet .= "..\n";
} ?>


2:
<?php
if(strlen($tekst) > 50) {
$forkortet = substr($tekst, 0, 50);
for($i=50; $tekst{$i} != "."; $i++) {
$forkortet .= $tekst{$i};
} $forkortet .= "..\n";
} ?>


Hvad er der galt ??? og hvordan får jeg det skåret ned til f.eks 150 tegn og
så til første punktum ??? Jeg vil gerne have det til at passe med teksten ud
for de enkelte billeder, og min nuværende opbygning vil jeg ikke ændre på,
jeg vil ikke tilbage til tabeller!


--
Hilsen Frank
Hjemmeside : www.anakin.dk

Very funny Scotty, now beam down my clothes !!



 
 
Johan (24-03-2002)
Kommentar
Fra : Johan


Dato : 24-03-02 14:01

> Hvad er der galt ??? og hvordan får jeg det skåret ned til f.eks 150 tegn og
> så til første punktum ??? Jeg vil gerne have det til at passe med teksten ud
> for de enkelte billeder, og min nuværende opbygning vil jeg ikke ændre på,
> jeg vil ikke tilbage til tabeller!

<?php
//IKKE TESTET
//DIN TEKST = $tekst
$Length = 150;
$i = 0;
while(substr($tekst, ($Length+$i), 1) != '.') {
$ForkortetTekst = substr($tekst, 0, ($Length+$i))
$i++;
}
?>

mvh

Johan


Frank Madsen (24-03-2002)
Kommentar
Fra : Frank Madsen


Dato : 24-03-02 14:56

> > Hvad er der galt ??? og hvordan får jeg det skåret ned til f.eks 150
tegn og
> > så til første punktum ??? Jeg vil gerne have det til at passe med
teksten ud
> > for de enkelte billeder, og min nuværende opbygning vil jeg ikke ændre
på,
> > jeg vil ikke tilbage til tabeller!
>
> <?php
> //IKKE TESTET
> //DIN TEKST = $tekst
> $Length = 150;
> $i = 0;
> while(substr($tekst, ($Length+$i), 1) != '.') {
> $ForkortetTekst = substr($tekst, 0, ($Length+$i))
> $i++;
> }
> ?>

Jeg forstår ikke hvad du mener, jeg kan ikke _se_ ændringen ?!? og hvad
mener du med $tekst = min tekst ?? skal hele mit dokument ind i $tekst ??

Gider du ikke prøve at skrive koden som den skal stå i dokumentet for at den
virker ??? Det er ikke fordi du skal lave koden for mig, og jo, for jeg
fatter ikke en døjt af php, men har været tvunget ud i det fordi jeg vil
udnytte min serverplads og have min egen gæstebog.... så lidt her og
der.....


--
Hilsen Frank
Hjemmeside : www.anakin.dk

Very funny Scotty, now beam down my clothes !!



Johan (24-03-2002)
Kommentar
Fra : Johan


Dato : 24-03-02 17:52

> <?php
> $Length = 150;
> $i = 0;
> while(substr($tekst, ($Length+$i), 1) != '.') {
> $forkortet = substr($tekst, 0, ($Length+$i))
> $i++;
> }
> ?>

kort sagt.
Den sætning du ønsker forkortet ligger i variablen $tekst
Du forkortede tekst ligger i $forkortet

Men kan ikke sætte det mere op, uden jeg kender mere til din kildekode?

mvh

Johan


Andreas Kleist Svend~ (24-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 24-03-02 15:45

Frank Madsen wrote:

> for($i=$tegn; $tekst{$i} != "."; $i++) {

Det er vist her den smutter, $tekst{$i} er ikke det $i'ne tegn i $tekst,
det er $tekst[$i] derimod, så prøv at erstat det.

--
mvh Andreas Kleist Svendsen

Frank Madsen (24-03-2002)
Kommentar
Fra : Frank Madsen


Dato : 24-03-02 15:45

> > for($i=$tegn; $tekst{$i} != "."; $i++) {
>
> Det er vist her den smutter, $tekst{$i} er ikke det $i'ne tegn i $tekst,
> det er $tekst[$i] derimod, så prøv at erstat det.

Jeg er meget taknemlig for dit svar, men vil du ikke nok sætte det færdige
op så det virker, jeg kan bedre forstå hvordan det er skruet sammen når jeg
har en kode der virker...


--
Hilsen Frank
Hjemmeside : www.anakin.dk

Very funny Scotty, now beam down my clothes !!



Andreas Kleist Svend~ (24-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 24-03-02 18:10

Frank Madsen wrote:

> Jeg er meget taknemlig for dit svar, men vil du ikke nok sætte det færdige
> op så det virker, jeg kan bedre forstå hvordan det er skruet sammen når
> jeg har en kode der virker...

Nej, hvis du vil have hjælp herinde bliver du selv nødt til at gøre en
indsats.

Hvis det er et færdigt og tilpasset script du vil have har du nok større
held på eksperten.dk.

--
mvh Andreas Kleist Svendsen

Frank Madsen (24-03-2002)
Kommentar
Fra : Frank Madsen


Dato : 24-03-02 20:47

> > Jeg er meget taknemlig for dit svar, men vil du ikke nok sætte det
færdige
> > op så det virker, jeg kan bedre forstå hvordan det er skruet sammen når
> > jeg har en kode der virker...
>
> Nej, hvis du vil have hjælp herinde bliver du selv nødt til at gøre en
> indsats.

Jamen når jeg ikke FORSTÅR hvad det er I skriver ??? jeg kan ikke SE på
koden hvad der er galt, og det php hæfte jeg har købt har jeg ikke fået
noget som helst ud af, andet end "hello world" ?!? og det er ikke det jeg
skal bruge. Jeg kan ikke slå op nogen steder det script eller den stump kode
jeg skal bruge, jeg beder bare om hjælp til at forstå, og ved at jeg ser en
kode der VIRKER, forstår jeg bedre hvordan den er skruet sammen, og når jeg
piller i den, og den så ikke virker, så lærer jeg af det....... se min side,
og bedøm selv hvor mange ÅR jeg har været om at lære det jeg kan der, jeg er
stadig på "kopiér/sæt ind" stadiet......


--
Hilsen Frank
Hjemmeside : www.anakin.dk

Very funny Scotty, now beam down my clothes !!



Per Thomsen (24-03-2002)
Kommentar
Fra : Per Thomsen


Dato : 24-03-02 18:16


"Andreas Kleist Svendsen" <usenetnospam@nau.dk> skrev i en meddelelse
news:a7kopd$df3$1@sunsite.dk...
> Frank Madsen wrote:
>
> > for($i=$tegn; $tekst{$i} != "."; $i++) {
>
> Det er vist her den smutter, $tekst{$i} er ikke det $i'ne tegn i $tekst,
> det er $tekst[$i] derimod, så prøv at erstat det.

Sludder...

Fra http://www.php.net/manual/en/language.types.string.php

String access by character
Characters within strings may be accessed by specifying the zero-based
offset of the desired character after the string in curly braces.

Note: For backwards compatibility, you can still use the array-braces.
However, this syntax is deprecated as of PHP 4.

MVH Per Thomsen,
http://www.pert.dk/



>
> --
> mvh Andreas Kleist Svendsen



Andreas Kleist Svend~ (24-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 24-03-02 23:13

Per Thomsen wrote:

> "Andreas Kleist Svendsen" <usenetnospam@nau.dk> skrev i en meddelelse
> news:a7kopd$df3$1@sunsite.dk...
>> Det er vist her den smutter, $tekst{$i} er ikke det $i'ne tegn i $tekst,
>> det er $tekst[$i] derimod, så prøv at erstat det.
>
> Sludder...

Du har sørme ret.

> Note: For backwards compatibility, you can still use the array-braces.
> However, this syntax is deprecated as of PHP 4.

Jeg er vist stadig på PHP3-stadiet. I hvert fald på visse punkter.

--
mvh Andreas Kleist Svendsen

Thomas Lindgaard (24-03-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 24-03-02 22:12

> Hvad er der galt ??? og hvordan får jeg det skåret ned til f.eks 150 tegn
og
> så til første punktum ??? Jeg vil gerne have det til at passe med teksten
ud
> for de enkelte billeder, og min nuværende opbygning vil jeg ikke ændre på,
> jeg vil ikke tilbage til tabeller!

> Hvad er der galt ??? og hvordan får jeg det skåret ned til f.eks 150 tegn
og
> så til første punktum ???

Utestet:

function shorten($text)
{
// Klip de første 150 tegn ud
$first_150_chars = substr($text, 0, 150);

// Læg resten af teksten over i en variabel
$the_rest = substr($text, 150);

// Find positionen af første punktum i resten
$dot_position = strpos($the_rest, ".");

// Tag tegn fra resten frem til første punktum (punktum inklusive)
$chars_until_next_dot = substr($the_rest, 0, $dot_position + 1);

// Returner strengen
return $first_150_chars . $chars_until_next_dot;
}

Du kalder funktionen således:

$text = "blablabla ... blablabla";
echo shorten($text);

Mvh. Thomas



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

Månedens bedste
Årets bedste
Sidste års bedste