zu lange Texte Kürtzen

liquidbeats

Erfahrenes Mitglied
Ich wüsste gern wie ich Texte die aus der Datenbank kommen kekürtz werden.

Beispielsweise ein text ist 100 zeichen lang, das Limit lieg bei 50 Zeichen so das die Letzten 50 zeichen einfach durch "..." drei Punkte ersetzt werden.

Kann mir da jemand ein Tutorial oder suchbegriff nennen oder eine einfach variante ?

Ich habe gesucht im netzt und dieser seite, Aber ohne zu wissen nach was man suchen muss ist es schon recht schwer Ergebnisse ans Tageslicht zu Befördern.


Gruß Andy
 
hi,

die von Dir gesuchte Funktion ist substr.
PHP:
echo substr($var,0,50)."...";
Ciao tydu
 
habe hier auch noch was.. öffnet ein neues fenster in dem der ganze text drin steht

PHP:
      <?php
//Daten auslesen
$limit= "4";
$result = mysql_query("SELECT * FROM $tab_news WHERE aktiv='Ja' ORDER BY id DESC Limit $limit",$link);  
?>
      <? while ($daten = mysql_fetch_array($result)) {?>
      <img src="./lib/images/ab_right.gif" width="8" height="7"> <a href="javascript:popUp2('./lib/include/last.php<? echo '?last='.$daten[id].'' ?>')"> 
      <?
			 $news = $daten[subject];
			  $news_rest = substr($news, 0, 15);
echo substr($news_rest,  strrpos($news_rest, "-3"))."...";

			   ?>
      </a><br>
      </strong> 
      <? 
}
?>

die last.php müsste dann so aussehen

PHP:
<title>::: Latest News :::</title>
<link href="../css/style.css" rel="stylesheet" type="text/css"> 
<?php

include("./config.inc.php");
include ("./opendb.inc");

?>
<SCRIPT LANGUAGE="JavaScript">
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1,width=600,height=250,left = 180,top = 140');");
}
</script>
<?
if ($last) { 
$sql = "SELECT * FROM $tab_news WHERE id='$last'";
$result = mysql_query($sql,$link);
?>
<? while ($daten = mysql_fetch_array($result)) { 
$nachricht = ($daten['nachricht']);
?>
<table width="85%" height="8" border="0" cellpadding="0" cellspacing="0" >
  <tr > 
    <td width="185" height="8" valign="middle"><strong><img src="../images/news.gif" width="10" height="9">&nbsp;<span class="subject"><? echo $daten[subject]; ?></span></strong></td>
    <td height="8" valign="middle">
<div align="center"></div>
      <div align="right" ><strong><font face="Arial, Helvetica, sans-serif"><a href="#" onMouseOver="this.T_WIDTH=80; return escape('<div align=\center\>erstellt von: <br><? echo $daten[author]; ?><\div>')" style="color : #333333; text-decoration: none; font-size: 10px;"><? echo $daten[datum] ?></a></font></strong></div></td>
  </tr>
</table>
<table width="85%" cellspacing="0">
  <tr> 
    <td align="right"> 
      <?
//Hier wird geprüft ob ein Bild vorhanden ist
if ($daten['type']) { ?>
      <a href="javascript:popUp('./newspic_f.php<? echo '?id='.$daten[id].'' ?>')" style="text-decoration: none"><img src="../images/newspic.gif" border="0"></a> 
      <?
} else {
        echo "";
}
?>
    </td>
  </tr>
  <tr> 
    <td valign="top" class="content"> 
      <?
//Hier wird geprüft ob News vorhanden sind und ob Sie gewrap werden müssen
if ($daten['nachricht'])
{
                      echo  " $nachricht";
   } else {
                      echo "Es wurden noch keine News eingetragen. <br> Um News einzutragen,
                            klicken Sie bitte <a href=admin.php>hier</a>";
}
?>
    </td>
  </tr>
  <tr> 
    <td> 
  <tr> 
    <td height="6" colspan="5" class="lineunder"> </table>
<?
}}
?>
<div align="center"><a href="javascript:self.close()" class="resultshead"style="text-decoration: none" a>Fenster 
  schlie&szlig;en</a></div>

was in die config.inc.php und opendb.inc kommt ist wohl jedem klar...
 
MySQL verfügt übrigens auch über eine Funktion, mit der sich eine Teilzeichenfolge einer Zeichenkette zurück geben lässt:
&nbsp;&rsaquo;&rsaquo;&nbsp;MySQL Manual | 7.3.2 Zeichenketten-Funktionen

So lassen sich aus einer Kombination von LEFT, LOCATE und CONCAT z.B. die ersten vollständigen Sätze ab einer bestimmten Position:
Code:
SELECT
        LEFT(`spalte`, LOCATE('.', `spalte`, 50)) AS `kurztext`
  FROM
        `tabelle`
oder die ersten vollständigen Wörter mit drei Folgepunkten:
Code:
SELECT
        CONCAT(LEFT(`spalte`, LOCATE(' ', `spalte`, 50)), ' ...') AS `kurztext`
  FROM
        `tabelle`
zurückgeben.
 
Zuletzt bearbeitet:
Die Funktion der Datenbank abfrage kam für mich aber nicht in Frage, da der Text an einer anderen stelle nochmal in kleinerer form gekürtzt werden muss.
Ich finde die PHP Variante schon ganz Praktisch :)
 
Zurück