[PHP] URLs auslesen mit PHP

Angesichts der Tatsache, dass diese Seite text/plain ist, bietet sich file() an, weil du dann direkt jede Zeile in einem Arrayelement hast.
 
Danke für den kleinen Hinweis.

Ich habe herausgefunden, dass ich mit folgendem Code

PHP:
<?php

$status = @file("https://gewinnspiele.ecircle-ag.com/flight17/[email protected]");

echo $status[10];

?>

auf folgende Zeile treffe:

https://pics.domeus.com/addgen_system/06_17/orderId/orderId_204.gif 90047693

Jetzt benötige ich jedoch nur die URL, ohne die ID dahinter.

Dies könnte ich schon entsprechend formatieren, zB. in dem ich die letzten 9 Stellen streiche.. aber was ist, wenn die ID am Ende zB. einmal 15-stellig ist..

Problematisch ist überhaupt auch, wenn sich die erste URL einmal nicht in Zeile 10, sondern schon in Zeile 8 befindet.. wobei ich ehrlich gesagt nicht glaube, dass dies so schnell der Fall sein wird.. ;)
 
Zum zweiten Problem: Einfach so viele Zeilen überspringen, bis du eine Zeile hast, die mit https:// anfängt.
Zum ersten Problem: Prüfen, an welcher Stelle das erste Leerzeichen kommt und den String dort abschneiden.

Siehe:
substr()
continue
strpos()
 
Also das mit der "Hauruck"-Methode hab ich hinbekommen.. schwach, dass ich nicht selber auf die Idee gekommen bin ;)

Das was MrToiz vorgeschlagen hat, also so viele Zeilen zu überspringen, bis das http// kommt, konnt ich auch durch Ansicht der 3 vorgeschlagenen Funktionen noch nicht lösen..

Habt ihr vielleicht noch einen kleinen Tipp/Hinweis für mich?

Danke!
 
Das was MrToiz vorgeschlagen hat, also so viele Zeilen zu überspringen, bis das http// kommt, konnt ich auch durch Ansicht der 3 vorgeschlagenen Funktionen noch nicht lösen..
Dazu brauchst du nur das strpos(), um zu checken, ob https:// drin vorkommt.
Mit ner Schleife solange zeilenweise vorwärts, bis du eine Zeile hast, wo strpos() ein Ergebnis liefert. Das is die erste Zeile mit URLs drin.
 
Ich würde es so machen (oder die Datei zeilenweise als Schleife einlesen):

PHP:
<?
  foreach ($status AS $value) {
    if (strpos($value, 'https://') !== false) {
      $pos = strpos($value, ' ');
      $data[] = array (
        'url' => substr($value, 0, $pos),
        'id' => substr($value, $pos+1)
      );
    }
  }
?>

Und schon hast du ein schickes Array weches die ganzen URLs und IDs enthält.
 
Zuletzt bearbeitet:
Wobei ich mich frage, was wohl besser ist:
PHP:
if(strpos($value, 'https://') !== FALSE) do_something();
// oder
if(substr($value, 0, 7) == 'https://')) do_something();
Ich hatte eigentlich letzteres im Sinn, aber das ist wohl Geschmackssache ;)