 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
30.05.2003, 11:24
|
#1
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
preg_replace Problem, Dateinamen auslesen
Habe folgene Code-Zeilen:
$var = "<html><head></head><body><a href="www.meinserver.de/files/info.pdf">zur Datei</a></body></html>";
$search = array ("'.*?<a href="www.meinserver.de/files[^/]*?>'si","'">[^>]*?>'si");
echo $text = preg_replace ($search, $replace, $var);
Möchte also den Dateinamen auslesen, auf den hier verlinkt wird und am Schluß als Ausgabe ($text) info.pdf erhalten, aber irgendwie gibt es immer wieder eine Fehlermeldung.
Woran liegt das? Thanks...
|
|
|
30.05.2003, 11:44
|
#2
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Hab im Moment keine Zeit, mich mit deiner regexp zu beschäftigen, aber warum extrahierst Du nicht den kompletten Pfad und holst Dir den Dateinamen mit basename()?
|
|
|
30.05.2003, 12:06
|
#3
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
Geht glaub ich nicht
in dem string sind nicht nur der Pfad zum Datenamen sondern auch noch andere tags und formatierungsangaben. Die mußte ich ja vorher auch irgendwie alle wegbekommen, oder nicht? Daher der Ansatz mit dem preg_replace!!!
|
|
|
30.05.2003, 12:14
|
#4
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Den Pfad musst Du natürlich per regexp rausfiltern:
Mit preg_match("/<a href=\"([^\"]+)\"/",$var,$result) steht in $result[1] der komplette Pfad.
Dann wäre deine Datei:
$datei = basename( $result[1] );
( Hoffe mal, das daß alles so stimmt kein PHP zum testen an diesem Platz... )
|
|
|
30.05.2003, 12:35
|
#5
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
Fehlermeldung
bekomme in der Zeile mit dem
preg_match("/<a href=\"([^\"]+)\"/",$var,$result)
eine Fehlermeldung (parse error) angezeigt.
|
|
|
30.05.2003, 12:37
|
#6
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
einen strichpunkt hast hoffentlich am ende der zeile angefügt?
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
30.05.2003, 12:50
|
#7
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
klar, hier noch mal der komplette code:
$var = "<html><head></head><body><a href="www.meinserver.de/files/info.pdf">zur Datei</a></body></html>";
preg_match("/<a href=\"([^\"]+)\"/",$var,$result);
$datei = basename($result[1]);
echo $datei;
|
|
|
30.05.2003, 14:07
|
#8
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
Super
hab denn Fehler selbst gefunden (die Anführungszeichen). Eine Frage hab ich aber immer noch: Wie stelle ich jetzt sicher, das die Abfrage nur stattfindet bzw. der Dateiname nur rausgefiltert wird, wenn die Datei im Ordner /files liegt, und nicht in irgendeinem anderen Ordner?
|
|
|
30.05.2003, 14:14
|
#9
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
ne Schnellschusslösung ( wie gesagt: mangels PHP ungetestet ):
Probier mal das Ergebnis von
basename(dirname($result[1]));
Könnte das direkt übergeordnete Verzeichnis zurückgeben...
|
|
|
30.05.2003, 14:38
|
#10
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
schade, ne Fehlermeldung. Man muß doch irgendwie den string ($var) absuchen können, ob dort eben "/files" drinne vorkommt, und dann eben die Abfrage starten. Ich denke das in etwa so:
if(in der $var == 'das Wort /files') dann usw.
kennst Du da ne lösung?
|
|
|
30.05.2003, 14:51
|
#11
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
if ( preg_match("/\/files/",$var) { print "mach was" }
|
|
|
30.05.2003, 16:34
|
#12
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Anstelle sich hier über den RegEx zu kloppen, solltet ihr auch mal den Fehler beseitigen:
$var = "<html><head></head><body><a href="www.meinserver.de/files/info.pdf">zur Datei</a></body></html>";
Die Anführungszeichen " müssen noch ausgeklammert werden, sonst wird es nie gehen
So:
$var = "<html><head></head><body><a href=\"www.meinserver.de/files/info.pdf\">zur Datei</a></body></html>";
Oder so:
$var = '<html><head></head><body><a href="www.meinserver.de/files/info.pdf">zur Datei</a></body></html>';
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
30.05.2003, 16:54
|
#13
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
@Adagio:
Zitat:
Original geschrieben von Kilroy
hab denn Fehler selbst gefunden (die Anführungszeichen).
|

|
|
|
30.05.2003, 17:56
|
#14
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Hm, ich sollte nicht totmüde ins Forum kommen 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:04 Uhr.
|
 |