Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Vis lidt af tekst fra database

0 views
Skip to first unread message

nederbasse

unread,
Nov 23, 2009, 4:01:59 PM11/23/09
to
Hej

Jeg vil gerne vise en overskrift hentet fra en Mysql db som f.eks.:
Dette er en enme....
i stedet for
Dette er et emne der er for langt til at st� p� siden hvor det skal vises

Jeg har pr�vet at Google det men ved ikke rigtigt hvad jeg skal lede efter

Lars


Chano Andersen

unread,
Nov 23, 2009, 7:10:00 PM11/23/09
to
nederbasse skrev:

> Jeg vil gerne vise en overskrift hentet fra en Mysql db som f.eks.:
> Dette er en enme....
> i stedet for
> Dette er et emne der er for langt til at st� p� siden hvor det skal vises

Jeg ville bare lave det direkte i SQL querien..

Kig f.eks. p� disse:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat

En konstruktion i stil med

SELECT IF(LENGTH(`emne`)>15,CONCAT(LEFT(`emne`,12),'...'),`emne`) AS
`NytEmne`

Skulle kunne g�re det.. Den vil returnere hele emnet hvis det er under
15 tegn langt, ellers kun de f�rste 12 tegn efterfulgt af ... det er dog
utestet..


Du kan ogs� bruge left funktionen i PHP, og g�re det samme der.. Uanset
hvad, ville jeg personligt smide en title="fuld emne linje" p� emnet, s�
vil det for det meste blive vist i fuld l�ngde, n�r man holder musen
over det.

- Chano Andersen

Philip Nunnegaard

unread,
Nov 24, 2009, 1:40:15 AM11/24/09
to
nederbasse skrev:

> Hej
>
> Jeg vil gerne vise en overskrift hentet fra en Mysql db som f.eks.:
> Dette er en enme....
> i stedet for
> Dette er et emne der er for langt til at st� p� siden hvor det skal vises

Den nemme m�de:
$titeltekst = "Dette er et emne der er for langt til at st� p� siden
hvor det skal vises";

// Tager de f�rste 15 tegn og smider "..." efter
if(strlen($titeltekst) > 15) {
$overskrift = substr($titeltekst,0,15)."...";
} else {
$overskrift = $titeltekst;
}

echo $overskrift; // returnerer "Dette er et emn..."
Den fulde overskrift kan s� smides ind i en title, som Chano Andersen
foresl�r:

echo "<span title=\"$titeltekst\">$overskrift</span>";

Martin

unread,
Nov 24, 2009, 7:53:01 AM11/24/09
to

og til dem som ikke vil have det ender med
Dette er et em...
Eller dem som har html i sin tekst

echo preview_text($titeltekst, 15, true);

function preview_text($TEXT, $LIMIT, $TAGS = 0) {

// TRIM TEXT
$TEXT = trim($TEXT);

// STRIP TAGS IF PREVIEW IS WITHOUT HTML
if ($TAGS == 0) $TEXT = preg_replace('/\s\s+/', ' ',
strip_tags($TEXT));

// IF STRLEN IS SMALLER THAN LIMIT RETURN
if (strlen($TEXT) < $LIMIT) return $TEXT;

if ($TAGS == 0) return substr($TEXT, 0, $LIMIT) . " ...";
else {

$COUNTER = 0;
for ($i = 0; $i<= strlen($TEXT); $i++) {

if ($TEXT{$i} == "<") $STOP = 1;

if ($STOP != 1) {

$COUNTER++;
}

if ($TEXT{$i} == ">") $STOP = 0;
$RETURN .= $TEXT{$i};

if ($COUNTER >= $LIMIT && $TEXT{$i} == " ") break;

}

return $RETURN . "...";
}

}

Peter Farsinsen

unread,
Nov 24, 2009, 8:47:34 AM11/24/09
to
Martin wrote:

> // STRIP TAGS IF PREVIEW IS WITHOUT HTML
> if ($TAGS == 0) $TEXT = preg_replace('/\s\s+/', ' ', strip_tags($TEXT));

Hvad har strip_tags() gjort? ;)

> // IF STRLEN IS SMALLER THAN LIMIT RETURN
> if (strlen($TEXT) < $LIMIT) return $TEXT;

Hvad s�, hvis l�ngden p� strengen matcher limit? ;)

> if ($TAGS == 0) return substr($TEXT, 0, $LIMIT) . " ...";

Her returnerer funktionen pr�cis det samme, som er foresl�et tidligere ;)

--
Peter Farsinsen
for...@efternavn.dk

Martin

unread,
Nov 27, 2009, 11:50:54 AM11/27/09
to
On 24-11-2009 14:47, Peter Farsinsen wrote:
> Martin wrote:
>
>> // STRIP TAGS IF PREVIEW IS WITHOUT HTML
>> if ($TAGS == 0) $TEXT = preg_replace('/\s\s+/', ' ', strip_tags($TEXT));
>
> Hvad har strip_tags() gjort? ;)

Ja, det er noget gammelt skidt ;-)

>
>> // IF STRLEN IS SMALLER THAN LIMIT RETURN
>> if (strlen($TEXT) < $LIMIT) return $TEXT;
>
> Hvad s�, hvis l�ngden p� strengen matcher limit? ;)

S� skriver man et komma ind, det er der altid lige plads til ;-)

>
>> if ($TAGS == 0) return substr($TEXT, 0, $LIMIT) . " ...";
>
> Her returnerer funktionen pr�cis det samme, som er foresl�et tidligere ;)

Ja selvf�lgelig, man har jo valgt at ikke have tags med over :)

0 new messages