php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2007, 20:28  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard text vor/nach bestimmtem wort abtrennen

Hallo zusammen,
ich habe ein kleines Problem mit einem grösseren Text ich müsste für die textvorschau den text nach einem Bestimmten Wort absuchen, und vor und nach dem wort ca. 50-70 zeichen abschneiden, wobei das erste und letzte wort nicht abgeschnitten werden sollten.

Beispiel:
"hallo ich bin der text XD, und ich muss zurechtgeschnitten werden "

Wenn ich zb bei "muss" den Text schneide, sollte das ergebniss so aussehen:

"...und ich muss zurechtgeschnitten...
Natürlich ist der originaltext einiges länger XD daher 50-70Zeichen...

Wie lässt sich das am besten lösen?

Besten dank im vorraus!
Freundliche Grüsse Kazuya
kazuya ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.11.2007, 20:46  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo kazuya,

das ist IMHO nicht weiter schwer. Du suchst per strpos() die Stelle, an der das Wort steht. Anschließend ziehst du 50-70 Zeichen ab und schaust, ob das Zeichen ein Leerzeichen ist. Falls nein, dann iteriere solange in der Zeichenkette zurück, bis du eines gefunden hast und merke dir die Position. Gleiches machst du bei +50-70 Zeichen. Sinnvollerweise abstrahierst du das Leerzeichen suchen in einer Funktion, dann kannst du das sowohl für vorwärts aus auch für rückwärts verwenden. Etwa so:

PHP-Code:
<?php
function searchBlank($Text,$StartPos,$Difference,$Direction){
}
?>
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 05.11.2007, 21:29  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Nur doof wenn bei der Iritation keine Leerzeichen existieren
Solltest da auf jeden Fall ne maximale Länge suchen. Z.B. wenn in der Umgebung von -10 bis +10 Zeichen kein Leerzeichen existiert einfach im Wort umbrechen.
Flor1an ist offline  
Alt 05.11.2007, 21:56  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
Iritation
Richtig, dann entsteht Irritation...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 05.11.2007, 22:00  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

Hi zusammen,
Danke Erstmal für die tipps!
ich bin mal soweit gekommen, aber ich weiss nicht wie ich nach einem leerzeichen suchen soll

PHP-Code:
<?php
function cutter($text,$wort){ 

$pos strpos($text$wort);

$posl $pos 50;
$posr $pos 50;

$text substr($text$posl$posr); 


?>
grüsse Kazuya
kazuya ist offline  
Alt 05.11.2007, 22:27  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

wie wärs mit strpos ($text , ' ') ?
oder ($text{$counter} === ' ') ?
nikosch ist offline  
Alt 05.11.2007, 22:40  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

du meinst mit ner schleife oder if/else?

grüsse kazuya
kazuya ist offline  
Alt 05.11.2007, 22:44  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Siehe Manual.
Ersteres findet Leerzeichen direkt, über die geschweifte Klammer Syntax kann die von Dr. E. vorgeschlagene Iteration in einer Schleife erfolgen.
nikosch ist offline  
Alt 05.11.2007, 23:58  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

hmm... bei mir funktioniert das ganze nicht so ganz mit dem strpos ich hab das anze in eine funktion gebaut, die die daten aus einer db in einer schleife ausgibt, wollte mal esten ob ich das script so wies oben ist zum laufen krieg, und nacher das mit den leerzeichen versuchen...

aber wenn ich mit return alle variablen ausgeben will kommt nur ein abgeschnittener text dann -50 und +50 und dann nixmehr
die varibeln werden so ausgegeben: return $text.$posl.$posr.$pos;

grüsse kazyua
kazuya ist offline  
Alt 06.11.2007, 01:08  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte sieh Dir nochmal den 3. Parameter von substr() an. pos + 50 führt hier zum falschen Ergebnis.
Bei der geschilderten Ausgabe liegt es nahe anzunehmen, dass Dein Suchwort nicht im Text gefunden wurde. Sonst kämen nicht -50, +50 und /nichts/ (= Ergebnis der Ausgabe von false) dabei zustande.
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
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] durch Klick auf Text anderen Text einblenden HTML, Usability und Barrierefreiheit 3 03.07.2005 14:41
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
frames probleme HTML, Usability und Barrierefreiheit 6 18.01.2005 02:33
Text nach bestimmten Wort trennen themonk PHP Tipps 2005 9 08.01.2005 21:43
Per Button Text formatieren Igäl HTML, Usability und Barrierefreiheit 1 11.11.2004 06:25
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
csv-Datei nach bestimmtem Wort durchsuchen!? PHP Tipps 2004 2 30.07.2004 14:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2008/45062-text-vor-nach-bestimmtem-wort-abtrennen.html, php text ab bestimmten wort ausgeben, php string nach suchwort abschneiden, php string ab bestimmten wort ausgeben, php text nach wort umbrechen, php nach wort umbrechen, wort abtrennen, php nach bestimmtem zeichen schneiden, php nach bestimmten zeichen abschneiden, php string abtrennen, php ausgabe nach bestimmten wörtern, string bis zu einem bestimmten wort ausgeben php, php text nach bestimmten wort, php nach erstem wort umbrechen, php text nach wort abschneiden, php wörter vor und nach einem wort ausgeben, string ab zeichen ausgeben php, wörter vor ausgeben php, news abtrennen php, php string vor und nach suchbegriff abschneiden

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