[GastForen Programmierung/Entwicklung PHP und MySQL file_get_contents - geparst?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

file_get_contents - geparst?

vollueli
Beiträge gesamt: 785

12. Jun 2006, 21:55
Beitrag # 1 von 9
Bewertung:
(2732 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo

ich möchte gerne in der datei index.php überprüfen, ob ein bestimmter ausdruck ausgegeben wird, zum beispiel "hilfdirselbst.ch".
dieser ist allerdings in drei variablen gespeichert:

$hilf = "hilf";
$dir = "dir";
$selbst = "selbst.ch";

und wird so ausgegeben:
echo $hilf.$dir.$selbst;

jetzt möchte ich prüfen, ob im geparsten php (also nun html) code "hilfdirselbst.ch" vorkommt.

wie mache ich das? ich habe es mit file_get_contents("index.php"); versucht, das gibt mir allerdings den ungeparsten code zurück.
X

file_get_contents - geparst?

oesi50
  
Beiträge gesamt: 2315

12. Jun 2006, 22:24
Beitrag # 2 von 9
Beitrag ID: #234174
Bewertung:
(2731 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo vollueli,

versuch's mal mit split.

http://www.php.net/...ction.preg-split.php


als Antwort auf: [#234170]

file_get_contents - geparst?

ganesh
Beiträge gesamt: 1981

13. Jun 2006, 01:53
Beitrag # 3 von 9
Beitrag ID: #234198
Bewertung:
(2722 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
readfile() ist auch einen Versuch wert.
http://ch2.php.net/readfile


als Antwort auf: [#234170]

file_get_contents - geparst?

Pozor
Beiträge gesamt: 892

13. Jun 2006, 10:58
Beitrag # 4 von 9
Beitrag ID: #234238
Bewertung:
(2709 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ob du mit readfile oder mit file_get_contents arbeitest spielt keine grosse Rolle,
was Du beachten musst, ist dass Du eine URL als Pfad angiebst.
Wenn fopen wrappers aktiviert sind kannst Du dies so lösen.
Mit einer URL als Filename wird die Seite über den Webserver als anonymer User gelesen,
also so wie Du es möchtest.

Mit preg_match kannst Du dann noch dein Teststring suchen.


als Antwort auf: [#234170]

file_get_contents - geparst?

vollueli
Beiträge gesamt: 785

13. Jun 2006, 16:53
Beitrag # 5 von 9
Beitrag ID: #234319
Bewertung:
(2703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo

danke für eure tips!
da fopen_wrappers leider nicht aktiviert sind, kann ich das mit readfile oder file_get_contents nicht lösen.

@oesi: wie meinst du das mit split? das ist ja nur eine methode zum aufsplitten eines strings, also nicht das gewünschte oder?

ich werde es nun wahrschenlich so machen:

zuerst prüfen, ob fopen_wrappers aktiviert sind.
wenn ja, normal per readfile oder file_get_contents.
wenn nein, überprüfen ob die strings in dieser reihenfolge ausgegeben werden.


als Antwort auf: [#234238]

file_get_contents - geparst?

Pozor
Beiträge gesamt: 892

13. Jun 2006, 18:27
Beitrag # 6 von 9
Beitrag ID: #234330
Bewertung:
(2692 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Hier ein Lösungsansatz der immer gehen sollte (sofern cURL installiert ist)
cURL

Mit diesen Client URL Bibiothek-Funktionen kannst Du die verarbeitete Seite
bekommen, egal ob fopen wrappers aktiviert sind oder nicht.

Es mag sein, dass es einwenig wie mit Kanonen auf Spatzen zu schiessen ist,
doch möchtest Du die geparsten Daten haben, gibts nicht viele andere
halbwegs vernünftige Möglichkeiten.


als Antwort auf: [#234319]

file_get_contents - geparst?

oesi50
  
Beiträge gesamt: 2315

13. Jun 2006, 19:00
Beitrag # 7 von 9
Beitrag ID: #234336
Bewertung:
(2690 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo vollueli,

mit split kannst du evtl. den ungeparsten Code auswerten. Wenn du unbedingt parsen lassen willst, kannst du mit
Code
$x = `/pfad_zu _php/php  /pfad_zum_script/scriptname.php`; 



das Ergebnis abgreifen.

Beachte die "`" (backtick-operator)


als Antwort auf: [#234319]
(Dieser Beitrag wurde von oesi50 am 13. Jun 2006, 19:01 geändert)

file_get_contents - geparst?

vollueli
Beiträge gesamt: 785

13. Jun 2006, 22:17
Beitrag # 8 von 9
Beitrag ID: #234367
Bewertung:
(2679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo

danke für eure antworten:

@pozor: curl möchte ich nicht verwenden, da das script auf allen webservern laufen sollte, ausnahmslos.

@oesi: ich habe folgenden code ind "index.php"
Code
$content = `/usr/local/bin/php  /home/user_www/yak.cevi.openspace.ch/clientroot/htdocs/test.php`; 


ind "test.php" steht <?php echo "hallo"; ?>
wenn ich nun $content ausgebe, wird nichts angezeigt. woran liegt das?


als Antwort auf: [#234336]

file_get_contents - geparst?

Pozor
Beiträge gesamt: 892

13. Jun 2006, 23:16
Beitrag # 9 von 9
Beitrag ID: #234372
Bewertung:
(2669 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

es kann an safe_mode = on liegen, dann geht dies nicht.

Rein von der Lesbarkeit würde ich auf Backtick-Operatoren verzichten und die
entsprechende Funktion dazu verwenden -> shell-exec

Also keine Lösung für jeden Host...

Deine Einschränkungenliegen hier:
safe_mode (ist bei sehr vielen Installationen auf on)
fopen wrappers
cURL installiert

Wenn du wirklich eine Lösung suchst, die auf den meisten Host läuft,
dann musst du wohl oder über ein mix aus den obigen Lösungen verfolgen.

z.B versuche den Content zu bekommen, mit einer der beschreibenen Lösungen.
Du kannst ja prüfen welche Methode funktioniert (ob die Funktion existiert etc)

Danach ist es ja dass selbe Prozedere um zu auf ein bestimmten String testen.


als Antwort auf: [#234367]
X