String finden
Pete
- php
Hallo,
ich möchte gerne den Text nach dem String <span class="style"> bis zum Zeichen / aus einer HTML-Datei finden.
Bekomme das aber leider nicht hin.
Da gibt es so viele String-Funktionen strlen, substr, strpos, strstr,...
Gruß,
Pete
Hellihello
ich möchte gerne den Text nach dem String <span class="style"> bis zum Zeichen / aus einer HTML-Datei finden.
Bekomme das aber leider nicht hin.
Da gibt es so viele String-Funktionen strlen, substr, strpos, strstr,...
na, du brauchst doch einen regulären ausdruck, oder? http://de2.php.net/manual/de/function.preg-match.php
Dank und Gruß,
Hiho,
ja gut. :)
Aber wie funktioniert das nun genau mit der preg_match()-Funktion.
Ich hab das auch verstanden aber kapier das ned.
Vlt hast du en Beispiel auf Lager.
Danke,
Pete
Hellihello
wie sieht denn dein String genau aus? Und warum willst du ihn finden und so weiter. vielleicht gibts ja einen anderen Ansatz.
Wenn du preg_match verstehst aber nicht kapierst, wirds etwas schwierig.
Dank und Gruß,
wie sieht denn dein String genau aus? Und warum willst du ihn finden und so weiter. vielleicht gibts ja einen anderen Ansatz.
Der Text in dem gesucht werden soll:
<span class=a>www.<b>de</b>.selfhtml.org/ - 25k - </span>
Was ich haben will:
de.selfhtml.org
Wenn du preg_match verstehst aber nicht kapierst, wirds etwas schwierig.
:D in dem Satz is irgendwas schief gelaufen.
Gruß
Pete
Hellihello
<?php
$subject = '<span class=a>www.<b>de</b>.selfhtml.org/ - 25k - </span>';
$pattern = '~<\/[b]>(.*?)\/~';
preg_match_all($pattern, $subject, $matches);
var_dump ($matches);
?>
bringt:
array(2) {
[0]=>
array(1) {
[0]=>
string(18) "</b>.selfhtml.org/"
}
[1]=>
array(1) {
[0]=>
string(13) ".selfhtml.org"
}
}
Dank und Gruß,
Lieber frankx,
$subject = '<span class=a>www.<b>de</b>.selfhtml.org/ - 25k - </span>';
...
array(1) {
[0]=>
string(18) "</b>.selfhtml.org/"
}
[1]=>
array(1) {
[0]=>
string(13) ".selfhtml.org"
}
und das "www"? Das sollte ja wohl auch noch in dem String enthalten sein!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hellihello Felix,
und das "www"? Das sollte ja wohl auch noch in dem String enthalten sein!
eigentlich das "de". Aber dann muss das <b> weg. Die Aufgabenstellung ist da nicht kohärent, möchte ich sagen.
btw: warum kann ich das xml deines Gästebuches nicht mit simplexml_load_file/string() öffnen?
Dank und Gruß,
Lieber frankx,
Die Aufgabenstellung ist da nicht kohärent, möchte ich sagen.
zugegeben. Aber man muss hier im Forum schon öfter zu Besuch gewesen sein, um zu lernen, wie man eine gute Frage/Aufgabenstellung formuliert... ;-)
btw: warum kann ich das xml deines Gästebuches nicht mit simplexml_load_file/string() öffnen?
Keine Ahnung. Ich verwende (ja offensichtlich) keine simplexml_-Funktionen. Wo genau liegt denn das Problem? Validiert die XML-Datei nicht? Oder liegt es am stand-alone-Doctype?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hellihello Felix,
Keine Ahnung. Ich verwende (ja offensichtlich) keine simplexml_-Funktionen. Wo genau liegt denn das Problem? Validiert die XML-Datei nicht? Oder liegt es am stand-alone-Doctype?
Warning: simplexml_load_string(): validity warning : Attribute kuerzel of element unwort: already defined in M:\gaestebuch\sxml.php on line 9
Warning: simplexml_load_string(): grafik CDATA #REQUIRED in M:\gaestebuch\sxml.php on line 9
Warning: simplexml_load_string(): ^ in M:\gaestebuch\sxml.php on line 9
Warning: simplexml_load_string(): validity warning : Attribute grafik of element unwort: already defined in M:\gaestebuch\sxml.php on line 9
Warning: simplexml_load_string(): > in M:\gaestebuch\sxml.php on line 9
Warning: simplexml_load_string(): ^ in M:\gaestebuch\sxml.php on line 9
sind aber nur warnungen, schlucken tut ers trotzdem und kanns auch verarbeiten.
Dank und Gruß,
Lieber frankx,
sind aber nur warnungen, schlucken tut ers trotzdem und kanns auch verarbeiten.
OHA! Da gab es wohl offensichtlich kleine Fehler in der DTD! Die <!ATTLIST-Stellen sollten direkt bei den passenden <!ELEMENT-Stellen stehen, sodass auf "<!ELEMENT smiley" unmittelbar auch "<!ATTLIST smiley" folgt. Diesen Fehler habe ich nun behoben.
Ich gebe Dir hier eine korrigierte DTD (muss in die Datei gb-daten.dtd), werde selbige Korrektur auch als Update zu meinem Script herausgeben:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE gaestebuch [
<!ELEMENT gaestebuch (smilies, icons, messengers, unwoerter, eintraege)>
<!-- definiert das Grundgerüst des Dateiformates -->
<!ELEMENT smilies (smiley)*>
<!-- enthält die Zuordnungen von Kürzeln und Smiley-Grafiken -->
<!ATTLIST smilies
pfad CDATA #REQUIRED
>
<!-- in diesem Verzeichnis sind die Smiley-Grafiken abgelegt -->
<!ELEMENT icons (icon)*>
<!-- enthält die Zuordnungen von K?ln und Icon-Grafiken -->
<!ATTLIST icons
pfad CDATA #REQUIRED
>
<!-- in diesem Verzeichnis sind die Icon-Grafiken abgelegt -->
<!ELEMENT messengers (dienst)*>
<!-- enthält eine Liste von Instant Messaging Diensten -->
<!ELEMENT unwoerter (unwort)*>
<!-- enthält Eintragungen unerwünschter Wörter -->
<!ELEMENT einstellungen (schalter)*>
<!-- enthält weitere Einstellungen für das Gästebuch -->
<!ELEMENT eintraege (eintrag)*>
<!-- enthält die Gästebucheinträge -->
<!ELEMENT smiley EMPTY>
<!-- definiert einen Smiley -->
<!ATTLIST smiley
kuerzel CDATA #REQUIRED
grafik CDATA #REQUIRED
>
<!-- die Zuordnung von Kürzel und Smiley-Grafik wird in diesen Attributen vorgenommen -->
<!ELEMENT icon EMPTY>
<!-- definiert ein Icon -->
<!ATTLIST icon
kuerzel CDATA #REQUIRED
grafik CDATA #REQUIRED
>
<!-- die Zuordnung von Kürzel und Icon-Grafik wird in diesen Attributen vorgenommen -->
<!ELEMENT dienst EMPTY>
<!-- hier wird das Link-Ziel für de diversen IMs abgelegt -->
<!ATTLIST dienst
name CDATA #REQUIRED
protokoll CDATA #REQUIRED
>
<!-- diese Attribute steuern die Zuordnung von Dienst und Link-Ziel -->
<!ELEMENT unwort EMPTY>
<!-- definiert ein Unwort (als PERL-kompatiblen regulären Ausdruck) -->
<!ATTLIST unwort
ausdruck CDATA #REQUIRED
>
<!ELEMENT schalter EMPTY>
<!-- enthält Einstellungen für bestimmte Funktionalitäten des Gästebuchs -->
<!ATTLIST schalter
name CDATA #REQUIRED
inhalt CDATA #REQUIRED
>
<!-- enthält den Einstellungswert für die jeweilige Funktionalität -->
<!ELEMENT eintrag (autor, nachricht)>
<!-- definiert den Aufbau eines GB-Eintrags -->
<!ATTLIST eintrag
datum CDATA #REQUIRED
zeit CDATA #REQUIRED
ip CDATA #IMPLIED
versteckt (ja|nein) "nein"
>
<!ELEMENT autor (imessenger)*>
<!-- definiert den Aufbau der Daten für den Autor eines Eintrags -->
<!ATTLIST autor
name CDATA #REQUIRED
email CDATA #IMPLIED
homepage CDATA #IMPLIED
>
<!-- Die Daten zum Autor werden in diesen Attributen gespeichert -->
<!ELEMENT imessenger EMPTY>
<!-- Eine Liste an Instant-Messenger-Protokollen, die der Autor benutzt -->
<!ATTLIST imessenger
name CDATA #REQUIRED
adresse CDATA #REQUIRED
>
<!-- Der Aufbau der Informationen zu einem IM -->
<!ELEMENT nachricht (#PCDATA)>
<!-- definiert den Aufbau der Daten für die Nachricht -->
]>
Liebe Grüße aus Ellwangen,
Felix Riesterer.