php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.01.2012, 10:23  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 9
PHP-Kenntnisse:
Anfänger
tb_spam befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Von Wort x bis Wort y, Text löschen

Hallo liebes Forum

ich möchte gerne von einem Wort x bis zu dem Wort y den kompletten Textinhalt löschen.

Wir haben z.B. die Variable $text mit dem Inhalt:
Code:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
Vom Wort ipsum bis eirmod, soll der Textinhalt gelöscht werden, sodass nur noch:
Code:
Lorem tempor
übrig bleibt.


Ich habe jedoch überhaupt keine Ahnung mit welcher PHP-Funktion sich das realisieren lässt.
Mit substr_replace kann ich ja nur die Wörter zählen. Das Problem ist jedoch, dass die Anzahl der Wörter nicht zählbar sind, da es dynamisch ist.

Hat jemand einen Tipp für mich?


Gruß,
tb_spam
tb_spam ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.01.2012, 10:25  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von tb_spam Beitrag anzeigen
Das Problem ist jedoch, dass die Anzahl der Wörter nicht zählbar sind, da es dynamisch ist.
Was genau soll das heißen?

Kennst du das Start- und das Endwort oder kennst du einen Index der Wörter?


MFG Connar
Connar ist offline   Mit Zitat antworten
Alt 31.01.2012, 10:26  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi,

substr wäre ein Möglichkeit:

http://tr.php.net/manual/de/function.substr.php

mfg Wolf29

P.S. mit substr_replace es aber auch gehen, wenn ich die Aufgabenstellung richtig verstehe!
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 31.01.2012, 10:30  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 9
PHP-Kenntnisse:
Anfänger
tb_spam befindet sich auf einem aufstrebenden Ast
Standard

Ich kenne das Start- und Endwort. Jedoch nicht die Anzahl der Wörter zwischendrin.

Gruß,
tb_spam
tb_spam ist offline   Mit Zitat antworten
Alt 31.01.2012, 10:39  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ich glaube nicht, daß substr hilft. Ich würds so machen:
PHP-Code:
$text 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor';
$text preg_replace'/ipsum(?<=ipsum).+(?=eirmod)eirmod/i'''$text ); 
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 31.01.2012, 10:44  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 9
PHP-Kenntnisse:
Anfänger
tb_spam befindet sich auf einem aufstrebenden Ast
Standard

Hallo Arne,

was genau bedeutet den das Suchmuster?
Habe das so noch nie gesehen.

Gruß,
tb_spam
tb_spam ist offline   Mit Zitat antworten
Alt 31.01.2012, 10:55  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Also das Grundpattern würde ja so aussehen:
Code:
ipsum.+eirmod
d.h. er findet das Wort ipsum gefolgt von irgendwelchen beliebigen Zeichen (der .+) und am Schluß gefolgt von eirmod

Um ihn ein wenig einzugrenzen habe ich die Assertionen eingefügt:
Code:
(?<=ipsum) // findet alles NACH der Klammer, was unmittelbar nach ipsum kommt
(?=eirmod) // findet alles VOR der Klammer, was unmittelbar vor eirmod kommt

// zusammengesetzt:
(?<=ipsum).+(?=eirmod)

// Die Angaben in den Assertionen werden nicht erkannt!
// daher setze ich die Worte voran bzw. dahinter:
ipsum(?<=ipsum).+(?=eirmod)eirmod
das ist auch schon alles.
Wird sicher noch ne bessere RegEx dafür geben, aber das war nur schnell mal nebenbei und sollte funktionieren, denke ich...

[EDIT]
was mir einfällt, wenn Du natürlich die Worte davor (lorem und tempor) kennst, kannst Du das kürzen:
Code:
(?<=lorem).+(?=tempor)
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (31.01.2012 um 11:06 Uhr).
Arne Drews ist offline   Mit Zitat antworten
Alt 31.01.2012, 11:06  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

soso Arne .. substr hilft nicht

PHP-Code:
$alttext="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor";
$neutext=substr($alttext,0,strpos($alttext,"ipsum")).substr($alttext,strpos($alttext,"eirmod")+6);
echo 
$neutext."<br/>"
Code:
Lorem tempor
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 31.01.2012, 11:28  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Er möchte ja ipsum und eirmod mit einschließen, daß nur 'Lorem tempor' übrigbleibt. Assertionen sind da gar nicht nötig:
PHP-Code:
$text 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor';
$text2 preg_replace'/ipsum.+?eirmod/i'''$text ); 

Geändert von jspit (31.01.2012 um 11:32 Uhr). Grund: Teststr. korr.
jspit ist offline   Mit Zitat antworten
Alt 31.01.2012, 12:39  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

@eagle: Stimmt. Ist wahrscheinlich auch performanter.
Persönlich würde ich hierzu trotzdem die RegEx-Variante einsetzen, weil ich damit imho flexibler bin, falls ich weitere Ansprüche habe.

Aber gut, substr in Verbindung mit strpos funktioniert natürlich.



@jspit:
Entspricht in etwas meiner ersten Codebox aus #7. Warum ich die Assertion dazugebastelt habe steht darunter...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   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
Denkanstoß: Tabelle Horatio PHP Einsteiger 2 06.11.2011 18:10
Row size too large ibeg Datenbanken 11 01.11.2011 14:44
Verschachtelte Auswahlfenster RichieG PHP Tipps 2010 3 10.03.2010 07:58
[Erledigt] CSS Problem, Links ausrichten monk HTML, Usability und Barrierefreiheit 7 09.03.2010 20:33
input text oder textarea feld inhalt mit einem klick löschen noskule HTML, Usability und Barrierefreiheit 10 26.05.2009 21:47
Textfelder Array in Datenbank schreiben raa PHP Tipps 2009 16 14.03.2009 21:41
[Erledigt] im sql kann ich tabelle nicht hinzufügen autofieber Datenbanken 7 01.03.2009 18:38
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
Nur einmal ein bestimmtes Wort löschen PHP Tipps 2005-2 4 20.07.2005 08:18
Text zwischen zwei zechen löschen PHP Tipps 2005-2 2 08.07.2005 19:21
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
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
lorem ipsum aus text entfernen, text löschen html, php textinhalte trennen

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