php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2009, 07:26  
Neuer Benutzer
 
Registriert seit: 29.07.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
tito befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Regulärer Ausdruck

Hallo alle,

eigentlich suche ich etwas nicht so ungewöhnliches, daher denke ich, dass mir leicht jemand helfen kann.
Seit Tagen suche ich nämlich nach einem Ausdruck, der mir schliesslich den letztendlichen Textinhalt eines Tags liefert.
ich habe also soetwas wie
Code:
...
<span class="dieKlasse">
<a class="irgendwas" href="http://ellenlangerLink">Der gesuchte Text</a>
</span>
...
Mit welchem Regulärem Ausdruck für preg_match könnte ich "Der gesuchte Text" finden?
Vor einigen Tagen bin ich achtlos über genau so ein Beispiel weggegangen und finde es nicht mehr Gesucht ist also der Textinhalt des Tags mit der Klasse "dieKlasse" und zwar bereinigt um alle weiteren tieferverschachtelten Tags. Angenommen übrigens, dass es "dieKlasse" nur einmal gibt.

Danke und Gruß

Geändert von tito (29.07.2009 um 14:20 Uhr).
tito ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.07.2009, 12:38  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Bau dir doch einen regulären Ausdruck der den gesamten Inhalt von "dieKlasse" herrausfindet und filtere da dann alle Tags raus
cetalian ist offline  
Alt 29.07.2009, 13:19  
Neuer Benutzer
 
Registriert seit: 29.07.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
tito befindet sich auf einem aufstrebenden Ast
Standard

...stimmt, letzterer Teil ist nicht so ganz kompliziert
Leider habe ich mit dem ersten aber doch so meine Probleme. Naja, ich werde mich mal dran versuchen und berichten.

Gruß
T.
tito ist offline  
Alt 29.07.2009, 13:38  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

PHP-Code:
<?php
$text 
= <<<HTML
<span class="dieKlasse">
<a class="irgendwas" href="http://ellenlangerLink">Der gesuchte Text</a>
</span>
HTML;
echo 
strip_tags($text);
?>
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 29.07.2009, 14:19  
Neuer Benutzer
 
Registriert seit: 29.07.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
tito befindet sich auf einem aufstrebenden Ast
Standard

Hallo Chriz,

ja, klar, das ist der einfachere Teil, von dem ich geschrieben hatte. Aber die Seite besteht natürlich nicht nur aus diesem einen Inhalt. D.h. der zitierten HTML-Bereich muss erstmal gefunden werden, das ist (für mich) der erwähnte schwierigere Teil der Aufgabe...

Gruß
T.
tito ist offline  
Alt 29.07.2009, 14:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Naja, nach dieKlasse wirst Du ja wohl noch suchen lassen können, hier im Fortgeschrittenen Forum. Klassen können allerdings mehrfach vorkommen, ergo ist das eigentlich kein hinreichendes Suchkriterium.

[MOD: verschoben]

Bitte Threadtitel ändern!
__________________
--
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 29.07.2009, 14:36  
Benutzer
 
Registriert seit: 08.03.2009
Beiträge: 51
PHP-Kenntnisse:
Anfänger
Rastaloeckchen ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$var 'test<a class="irgendwas" href="http://ellenlangerLink">Der gesuchte Text</a>test';

preg_match('#.*<a.*>(.*?)</a>#',$var$array);

var_dump($array);

array(
2) {
  [
0]=>
  
string(76"test<a class="irgendwas" href="http://ellenlangerLink">Der gesuchte Text</a>"
  
[1]=>
  
string(17"Der gesuchte Text"

Eine von den unzähligen Möglichkeiten. Also ich würde mal in einer stillen Minute darüber nachdenken ob die Einstufung "PHP-Kenntnisse:
Fortgeschritten" nicht ein klein wenig übertrieben ist.

@ Chriz Du hast es nicht einfach *lol*
Rastaloeckchen ist offline  
Alt 29.07.2009, 15:05  
Neuer Benutzer
 
Registriert seit: 29.07.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
tito befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

danke für alle Tips. Wie gesagt, wenn ich erstmal den kompletten Inhalt des <span>-Tags habe, ist der Rest wirklich nicht schwer und danach war auch nicht gefragt. Und in stillen Minuten denke ich lieber über ganz andere Dinge nach.
Ich hake das hier mal ab
Gruß
T.
tito ist offline  
Alt 29.07.2009, 15:06  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Ich gebe noch zu bedenken, dass man span's natürlich auch verschachteln kann. Vielleicht wäre DOM-Zugriff hier zielführender.
__________________
--
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 29.07.2009, 15:18  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

DOM und dann ein gezielter XPath wären natürlich wünschenswert, nur leider klappt das mit dem nicht-validen HTML dann nicht. Und Tidy hat ja nicht jeder parat Falls doch:

PHP-Code:
<?php
$tidy 
= new Tidy();
$htmlCode $tidy->repairString($htmlCode);
$dom = new DOMXpath();
$dom->loadHtml($htmlCode);
$nodes $dom->query("//span[@class='dieKlasse']");
foreach (
$nodes as $node) {
  
// gefunden
}
?>
Vermutlich recht performance-fressend, dafür aber hübsch
__________________
"Nuschel ich?" - "Was?"
Chriz 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
[Erledigt] Regulärer Ausdruck - preg_match Felk PHP Tipps 2009 9 24.04.2009 22:09
[Erledigt] regulärer Ausdruck, neg. Lookbehind Felk PHP Tipps 2009 18 08.04.2009 23:48
[Erledigt] regulärer ausdruck: negation einer zeichenkette Asipak PHP Tipps 2009 5 17.03.2009 15:37
Regulärer Ausdruck Andreas PHP Tipps 2009 1 02.03.2009 15:49
Regulärer Ausdruck ruferp PHP Tipps 2007 1 19.06.2007 20:21
Regulärer Ausdruck für Preis (float) Ticos PHP Tipps 2007 13 06.03.2007 20:21
Regulärer Ausdruck um <> zu entfernen innerhalb von XM becks123 PHP Tipps 2006 25 16.05.2006 15:06
regulärer ausdruck tomson PHP Tipps 2006 11 03.02.2006 09:58
Regulärer Ausdruck: Ping-Zeiten speichern mAy^daY Server, Hosting und Workstations 9 12.01.2006 19:51
Regulärer Ausdruck funktioniert nicht PHP Tipps 2006 12 05.01.2006 20:56
Regulärer Ausdruck für Emailadressen FireFIghter PHP Tipps 2007 5 30.12.2005 13:28
[Erledigt] Regulärer Ausdruck zum Testen auf Bildadresse PHP-Fortgeschrittene 9 05.02.2005 16:25
[Erledigt] Regulärer Ausdruck PHP-Fortgeschrittene 1 21.01.2005 11:39
Sehr gieriger Regulärer Ausdruck - bitte um Hilfe PHP-Fortgeschrittene 1 01.12.2004 13:34
Regulärer Ausdruck inu PHP Tipps 2004-2 8 18.11.2004 18:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regulärer ausdruck preis, regulärer ausdruck preis php, reguläre ausdrücke php, php mehrfacher regulärer ausdruck, php regulärer ausdruck benutzername, regulärer ausdruck, regulären ausdruck für dom php, gesuchten text

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