4images Forum & Community

General / Allgemeines => Programming => Topic started by: .Infecto on November 15, 2014, 10:48:47 PM

Title: Ausgabe auswerten mittells if-abfrage?
Post by: .Infecto on November 15, 2014, 10:48:47 PM
Hallo zusammen,
wie kann ich diesen Inhalt, bzw. diese Ausgabe individuell Auswerten?

http://share-links.biz/api/list?apikey=2ed183155346a56a

Die Ausgabe ist individuell
Als Beispiel nehmen wir mal die erste Ausgabe, bis zum ersten Leerzeichen
Ich möchte das hier auswerten

f9zeuenjbygnh;Hoster Test;so,ob,ul,fs,bs;556356550;0;online

Und zwar, möchte ich an diese Ausgabe kommen:

so,ob,ul,fs,bs

Diese sitzt zwischen zwei ";"- Zeichen

Mit der if-abfrage möchte ich an der Besagten Ausgabe kommen und diese seperat ausgeben.

Quasi:

$folderid = 'f9zeuenjbygnh' // Individuelle ID
if ($id == 'f9zeuenjbygnh') {


Wenn der passende Code gefunden wird, möchte ich den Inhalt "so,ob,ul,fs,bs" ausfindig machen.
Dieser liegt zwischen diesem hier:

;Hoster Test;so,ob,ul,fs,bs;

"Hoster Test" ist ein Name der auch individuell ist und demnach ignoriert werden muss.

Wie geht könnte das funktionieren?
Hat da jemand einen Tipp und einen Codeschnipsel?

LG
Title: Re: Ausgabe auswerten mittells if-abfrage?
Post by: Rembrandt on November 16, 2014, 05:20:42 AM
Hi!

Ich würde das, wenn die Anzahl der Elemente immer gleich ist, mit einen Array lösen.
$hostArray = explode(";","f9zeuenjbygnh;Hoster Test;so,ob,ul,fs,bs;556356550;0;online");


in diesen fall würde:
print_R($hostArray[2]);
 "so,ob,ul,fs,bs" zurück liefern.

mfg Andi
Title: Re: Ausgabe auswerten mittells if-abfrage?
Post by: .Infecto on November 16, 2014, 01:33:02 PM
Die Anzahl der Elemente sollten gleich bleiben:

  $buffer = file_get_contents("http://share-links.biz/api/list?apikey=2ed183155346a56a");
  $lines = explode("\n",$buffer);
  foreach($lines as $line) {
      $resArray = explode(";",$line);
      if (count($resArray) == 6) {
          print_r($resArray);
      }                 
  }

Ich nutze diese API- Abfrage: http://share-links.biz/api/list?apikey=2ed183155346a56a

Diese Abfrage, liefert mir folgende Ausgabe.

Code: [Select]
f9zeuenjbygnh;Hoster Test;so,ob,ul,fs,bs;556356550;0;online 7s08qen7gxwu;sdsdsdsdsdsd;ul;7008015;0;online x1y7qenll3qj;sdssd;ul;89791;0;online 0df6qenm7dg5r;SL;ul;7008015;0;online qu55men1z4bm;ShooBi;ul;89791;0;online
Die Ausgabe besteht aus folgenden Inhalten:

ID (f9zeuenjbygnh)
NAME (Hoster Test)
KÜRZEL (so,ob,ul,fs,bs)
GRÖßE (556356550)
KLICKS (0)
STATUS (online)
---- Es folgt ein Leerzeichen und die nächste Ausgabe folgt

Jetzt kommen wir zu dem eigentlichen, was passieren soll.

Im Adminbereich, kann man einen Containerlink von Share-Linkz.biz eingeben: http://share-links.biz/_f9zeuenjbygnh

In der URL ist die ID vorhanden: http: // share-links.biz/_f9zeuenjbygnh

Das System extrahiert die ID und schreibt diese in die Datenbank.

Auf der Detailsseite, werden anhand der ID von dem Share-Linkz Container einige Fragen abgefragt:

    $sldl = str_replace(SHARELINKZBIZ_FOLDERKEY, '', $image_row['image_download_url']);
 
    if ($image_row['image_download_url'] == SHARELINKZBIZ_FOLDERKEY . $sldl . '') {
        $sls_curl = curl_init();
        curl_setopt($sls_curl, CURLOPT_URL, SHARELINKZBIZ_STATS);
        curl_setopt($sls_curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($sls_curl, CURLOPT_POST, 1);
        curl_setopt($sls_curl, CURLOPT_FOLLOWLOCATION, 1);
        $arrays = array(
            'apikey' => '2ed183155346a56a',
            'folderCodes' => $sldl,
        );
        curl_setopt($sls_curl, CURLOPT_POSTFIELDS, $arrays);
        $sls_echo = explode(';', curl_exec($sls_curl));
        curl_close($sls_curl);
        $image_parts = $sls_echo[6];
     
        $statustxt = array(
            "/online/",
            "/offline/"
        );
        $statusimg = array(
            "<img src=\"" . TEMPLATE_PATH . "/images/status/online.png\" width=\"24\" height=\"14\" alt=\"\"/>",
            "<img src=\"" . TEMPLATE_PATH . "/images/status/offline.png\" width=\"24\" height=\"14\" alt=\"\"/>"
        );
     
        $status = preg_replace($statustxt, $statusimg, $sls_echo[2]);
     
        $image_status = $status;
    } else {
        $image_parts = "n/a";
    }

Hier wird z.B der Status und die Parts abgefragt, ohne Probleme.
Allerdings wird hier die Status-API verwendet: http://share-links.biz/api/status

Die Status-API liefert aber nicht die exakten Hoster/Kürzel aus, darum muss ich auf  http://share-links.biz/api/list zurückgreifen, welches aber ALLE Ordner ausliefert.

Darum versuche ich wie beim Status mit einer if-Abfrage und anhand der ID an die Hoster-Kürzel zu kommen.
Das Problem ist aber das die Liste mehrere Container auf einmal ausgibt und man nicht so einfach mit "$sls_echo[2]" an die entsprechende Stelle kommt.
Denn http://share-links.biz/api/status liefert anhand der ID auch nur die ID-Relevanten Daten aus und http://share-links.biz/api/list alle Container.