php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.10.2004, 13:50  
Gast
 
Beiträge: n/a
Standard Teilstring mit ganzen Worten

Hallo!

Ich möchte einen Teil bzw. den Anfang (Zeichen 0-30) eines Strings (mit Text) ausgeben. Hierbei sollen aber nicht Worte unterbrochen werden, sondern dann vor dem letzten Wort aufgehört werden.

Wer kann mir helfen?!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.10.2004, 14:38  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Mit substr und strpos kannst du dir da was basteln.
Beim ersten wird zuerst der Text ab dem 20. Zeichen abgeschnitten, dann nach der Position des letzten Leerzeichens gesucht und schließlich dort nochmal abgeschnitten.

Beim zweiten wird nach der Position des ersten Leerzeichens nach dem 20. Zeichen gesucht und dann per substr an dieser Stelle abgeschnitten.
Code:
//vor dem letzen Wort aufhören
echo substr($text, 0, strrpos(substr($text,0,20), " "))."
";

//Nach dem letzten Wort aufhören
echo substr($text, 0, strpos($text, " ", 20));
Es gibt bestimmt noch 42mal schönere Varianten. Die könntest du über google finden, dass dir zu diesem Problem wirklich massenhaft Informationen liefert....

mfG
werbegeschenk
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 24.10.2004, 14:55  
Gast
 
Beiträge: n/a
Standard

Bestimmt kann man daran noch was verbessern, ist aber nur auf die Schnelle zusammengeschrieben:
PHP-Code:
<?php 
 
function word_wrap($text$max
 { 
   
$result "";
   
$words explode(' '$text); 

   foreach(
$words as $word
   { 
     if ((
strlen($result) + strlen($word)) < $max)
       
$result .= $word " ";
     else
       break;
   } 
   return 
trim($result); 
 } 

 
$string "Dies ist ein langer Text, der gekürzt werden soll, aber nicht mitten im Wort";

 
$s word_wrap($string30);

 echo 
"Aus 
$string
wurde
$s"
;
?>
Gruß
phpfan
  Mit Zitat antworten
Alt 24.10.2004, 18:51  
Gast
 
Beiträge: n/a
Standard Re: Teilstring mit ganzen Worten

Zitat:
Zitat von MarcB
Wer kann mir helfen?!
Die FAQ, die Du kennen solltest:
7.8. Wie kann ich einen String kürzen?
http://php-faq.info/index.php?aktion...&id=84&lang=de
  Mit Zitat antworten
Alt 24.10.2004, 22:36  
Gast
 
Beiträge: n/a
Standard

Code:
//         0        1         2         3         4         5         6         7
//         12345678901234567890123456789012345678901234567890123456789012345678901234
$string = "Dies ist ein verflixt langer Satz, der garantiert mehr als 30 Zeichen hat";

$string = substr($string,0,strrpos(substr($string,0,31)," "));
echo $string;
  Mit Zitat antworten
Alt 24.10.2004, 23:19  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
$string "Dies ist ein verflixt langer Satz, der garantiert mehr als 30 Zeichen hat";

echo 
wordwrap($string30"\0") . ' ...'
?> 
  Mit Zitat antworten
Alt 24.10.2004, 23:24  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

[beim folgenden Quoting [ php] in [ code] geändert, da mir sonst das PHPbb in meinen Beitrag gepfuscht hat]
Zitat:
Zitat von meikel
Code:
$string = "Dies ist ein verflixt langer Satz, der garantiert mehr als 30 Zeichen hat";

echo wordwrap($string, 30, "\0") . ' ...'; 
?>
Diese Lösung funktioniert bei mir (Windows XP, PHP 5.0) leider irgendwie nicht. Im Browser tauchen nur lustige Quadrate an den stellen auf, an denen wordwrap das \0 reinsetzt. Eigentlich sollte das ja das Stringende sein. Ist das ein Windows-Problem, geht das nur mir so oder muss ich noch irgendwas bestimmtes beachten?

@Catweazle
Und wo genau liegt jetzt da der Unterschied zu meinem 1. Vorschlag? (bis auf die 31 statt der 20 )
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 25.10.2004, 00:10  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Werbegeschenk
Diese Lösung funktioniert bei mir (Windows XP, PHP 5.0) leider irgendwie nicht.
Stimmt. Die Variante hat einen Bug. Da muß ich die FAQ mal updaten. Ich selbst verwende sowas ähnliches:
http://test.php-help.info/shortText-1/ (Quelltext wird angezeigt)
  Mit Zitat antworten
Alt 26.10.2004, 12:50  
Gast
 
Beiträge: n/a
Standard

ich machs immer mit:

Zitat:
$post = substr($post,0,$anzahl_deiner_buchstaben) ;
$post = preg_replace ("/ [^ ]+$/","",$post) ;
  Mit Zitat antworten
Antwort


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
[Erledigt] HTML Mail mit Lücken mitten in den Worten, wie kommt das? DeeFour PHP-Fortgeschrittene 2 29.05.2008 15:47
gemeinsamer Teilstring ab position 0 nikosch PHP Tipps 2006 9 19.10.2006 19:38
Teilstring mgoertz PHP Tipps 2006 2 14.06.2006 14:03
[Erledigt] String mit Wörten an JS Funktion übergeben HTML, Usability und Barrierefreiheit 3 26.12.2005 18:30
Teilstring ersetzen PHP Tipps 2005-2 5 21.06.2005 15:34
unbekannten teilstring mit anfang/end-markierung ersetzen janni PHP Tipps 2005 14 29.04.2005 14:53
Teilstring jacos Datenbanken 4 10.03.2005 11:52
Teilstring mit ganzen Wörtern zcmaster Datenbanken 0 02.02.2005 08:00
die anfangsbuchstaben von wörten vergleichen PHP Tipps 2005 4 23.01.2005 16:35
Teilstring in Abfrage Datenbanken 4 29.07.2004 11:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php string anfang vergleichen, php teilstring vergleichen, php teilstring vergleich, javascript position eines wortes im string, php substr ganze wörter, php teile eines wortes vergleichen, php teilstring ersetzen, php string kürzen nach ganzem wort, php string nax wörten abschneiden, php in worten, substring javascript nach ganzem wort, php teilstring ganze wörter, array for javascript from php, php string nach 20 worten abschneiden, php string am anfang vergleichen, php string kürzen ganze wörter, substring nur ganze wörter, php stringanfang vergleichen, php substr words, php substring vergleichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:19 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.