php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.10.2006, 12:24  
Neuer Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 10
lifeloops
Standard Text kürzen ohne Wörter abzuschneiden

Hallo,

ich habe in meiner DB lange Texte die ich vorab ausgeben möchte. Der User soll dann über ... mehr zum Artikel kommen. Mit substr ($text,0,40) kann ich 40 Zeichen ausgeben, doch leider schneidet er fast immer mitten im Wort den Text ab.

Gibt es eine Möglichkeit die Buchstaben zu zählen, (strlen) und dann das Leerzeichen/Komma zu suchen um den Text dort abzuscheiden?

Danke
Code:
<?php
$text="Dies soll nur als Beispiel für den Text sein, den ich verarbeiten möchte. ";
//Ich würde Ihn gern hinter dem Komma trennen
$text=substr($text, 0, 20);
echo"$text";
?>
lifeloops ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.10.2006, 12:27  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Dann such doch mit strpos() nach dem Komma.
Aber ich würde dein Text-Feld aufteilen, in den Teaser, also den Aufreißer-Satz und dann nochmal den normalen Artikel.
Zergling-new ist offline  
Alt 05.10.2006, 12:37  
Neuer Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 10
lifeloops
Standard

Hi Zergling,
ich habe mir grade das durchglesen, komme aber wieder nicht weiter. Ich finde zwar die POS vom Komma und übernehme diesen Wert in den substr, aber wie mache ich es wenn ich kein komma habe? Kann ich da angeben zähle 20 und suche dann das leerzeichen?
Danke
lifeloops ist offline  
Alt 05.10.2006, 12:40  
Neuer Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 10
lifeloops
Standard

Ich habs:

<?php
$text="Dies soll nur als Beispiel für den Text sein, den ich verarbeiten möchte. ";
$pos = strpos($text, ' ', 20);
$text=substr($text, 0, $pos);
echo"$text";
?>
lifeloops ist offline  
Alt 05.10.2006, 12:50  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

hä?
Zergling-new ist offline  
Alt 06.10.2006, 17:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

dann hast du aber immer noch das komma...

- falls du nur den teaser brauchst, könntest du einen teil auch schon vorher in der datenbank abfrage abschneiden.
- falls die teaserlänge, z.b. 40, die maximale länge sein soll (an position 40 kann ja auch gerade ein seeehr langes wort anfangen...) kannst du hier mal schmökern: http://www.phpfriend.de/forum/ftopic59918.html
das problem mit dem Komma bleibt aber auch da. Oder du prüfst anschließend noch, ob das letzte zeichen ein komma ist...
nikosch ist offline  
Alt 26.06.2009, 01:20  
Benutzer
 
Registriert seit: 03.06.2009
Beiträge: 67
PHP-Kenntnisse:
Anfänger
bajo befindet sich auf einem aufstrebenden Ast
Standard

habs geschaft hast recht ist ganz einfach ^^

$data['movies']['text'] = cs_secure($movies_query['movies_text'], 1, 1, 1, 1, 0);
$data['movies']['text'] =substr($movies_query['movies_text'], 0, 20) . '...';

bajo ist offline  
Alt 26.06.2009, 01:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Nö. Dasmit hast Du auch bei 5 Zeichen immer ein ... am Ende. Und Dein cs_secure hat hier überhaupt nichts zu suchen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 26.06.2009, 01:27  
Benutzer
 
Registriert seit: 03.06.2009
Beiträge: 67
PHP-Kenntnisse:
Anfänger
bajo befindet sich auf einem aufstrebenden Ast
Standard

nein, es funktioniert. er packt nach 20 zeichen ... und das wollte ich
bajo ist offline  
Alt 26.06.2009, 01:29  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Das ist doch Quatsch. "..." wird unabhängig von der Länge immer angefügt. In einem Einzeiler sieht man das ziemlich gut.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JavaScript/PHP: qooxdoo 0.7.1 - Teil 1 : Eine Einführung Zergling-new Tutorials 6 25.01.2008 10:41
JavaScript: Text Area: Scrollen zu einer Zeile im Text SvenLittkowski HTML, Usability und Barrierefreiheit 13 28.11.2007 16:31
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
MySQL-Volltextsuche SvenLittkowski Datenbanken 6 14.06.2007 19:58
spalte rechts ausrichten, text aber trotzdem linksbündig Crypi HTML, Usability und Barrierefreiheit 5 14.09.2006 11:35
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
Text aus der DB verteilen PHP Tipps 2007 17 16.11.2005 12:04
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
[Erledigt] Text auf Bild PHP Tipps 2005 9 28.04.2005 15:05
DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
[Erledigt] frames probleme HTML, Usability und Barrierefreiheit 6 18.01.2005 02:33
Per Button Text formatieren Igäl HTML, Usability und Barrierefreiheit 1 11.11.2004 06:25
Javascript: Text einfügen geht nich über "javascript:BL HTML, Usability und Barrierefreiheit 14 19.10.2004 21:44
Zeilenumbrüche aus einem formatierten Text entfernen woods PHP Tipps 2004 9 23.09.2004 12:50
txt-Datei erstellen d-81 PHP Tipps 2004 12 11.08.2004 20:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2006/42389-text-kuerzen-ohne-woerter-abzuschneiden.html, javascript text kürzen, php substr wort, php text kürzen, text kürzen php, php substr wörter, php substr ganze wörter, deutsch texte kürzen, texte kürzen deutsch, php substring ganze wörter, deutsch texte verkürzen, php substr worte, sätze in kürzen in php, php substr wörter nicht trennen, text mit php kürzen, texte zum kürzen, php text kürzen ganze wörter, php substr bis komma, text kürzen mit php, php substr ganzes wort

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.