[PHP] Script so lange ausführen, bis entscheidener Wert gefunden werden kann

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [PHP] Script so lange ausführen, bis entscheidener Wert gefunden werden kann

    Hallo zusammen,


    ich erstelle mit (PHP) Share-Links einen Ordner und schmeisse dort die Links hinein.


    Im zweiten Anlauf, soll der Ordner ausgelesen werden, in diesem Fall der Status der Ordner. Nun ist es aber so, dass Share-Links eine gewisse Zeit braucht, um den Status anzuzeigen.


    Hier ein kurzer Einblick:


    Ordner erstellen:

    PHP-Quellcode

    1. $ch2 = curl_init();
    2. curl_setopt($ch2, CURLOPT_URL, "http://share-links.biz/api/insert");
    3. curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
    4. curl_setopt($ch2, CURLOPT_POST, 1);
    5. curl_setopt($ch2, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    6. curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
    7. $optionen = array(
    8. 'apikey' => 'XXXXXX', // Der API-Key, den man als reg. User bekommt
    9. 'folderName' => $random, // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
    10. 'links' => $downloadlinks,
    11. 'captcha' => 1,
    12. 'c_web' => 1,
    13. 'c_dlc' => 1,
    14. 'c_cnl' => 1,
    15. 'c_ccf' => 1,
    16. 'c_rsdf' => 1,
    17. 'comment' => "Hier kommt die Referenz"
    18. );
    19. curl_setopt($ch2, CURLOPT_POSTFIELDS, $optionen);
    20. $rueckgabe = explode(';', curl_exec($ch2));
    21. curl_close($ch2);
    Alles anzeigen




    Mittels function, wird die Auslesung des Ordners angefragt:

    PHP-Quellcode

    1. share_links();

    Die Funktion:

    PHP-Quellcode

    1. function share_links() {
    2. $ch3 = curl_init();
    3. curl_setopt($ch3, CURLOPT_URL, "http://share-links.biz/api/status");
    4. curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);
    5. curl_setopt($ch3, CURLOPT_POST, 1);
    6. curl_setopt($ch3, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    7. curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, 1);
    8. $optionen3 = array(
    9. 'apikey' => '0xxx', // Der API-Key, den man als reg. User bekommt
    10. 'folderCodes' => $sl_foldercode
    11. );
    12. curl_setopt($ch3, CURLOPT_POSTFIELDS, $optionen3);
    13. $rueckgabe3 = explode(';', curl_exec($ch3));
    14. curl_close($ch3);
    15. // var_dump($rueckgabe);
    16. $sl_foldername = $rueckgabe3[1];
    17. $sl_status = $rueckgabe3[2];
    18. }
    Alles anzeigen



    Das funktioniert auch, aber via if-abfrage soll geprüft werden:
    Bei "unknown" soll das die function wiederholt werden, bis eines der folgenden gefunden wurde:
    "online", "offline", oder "parts", dann soll ein Echo ausgegeben werden.


    Hier die if-abfrage dazu:

    PHP-Quellcode

    1. if($sl_status == "unknown") {
    2. share_links();
    3. }
    4. elseif($sl_status == "online" || $sl_status == "offline" || $sl_status == "parts"){
    5. echo "
    6. Titel: $titel<br />
    7. Untertitel: $titel2<br />
    8. <br /><br />
    9. Genre: $genre<br />
    10. Crack: $crack<br />
    11. Update: $update<br />
    12. Sprache: $sprache<br />
    13. Größe: $grosse<br />
    14. <br /><br />
    15. Beschreibung: $beschreibung<br />
    16. NFO: $nfo<br />
    17. Zusatzinfo: $zusatzinfo<br />
    18. Downloa Links: $downloadlinks<br />
    19. Share-Links.biz: $sl_link<br />
    20. Sharelinks: (Foldername: $sl_foldername | Status: $sl_status)<br />
    21. <br /><br />
    22. Cover Original: $cover<br />
    23. Cover imgur: $cover_out<br />
    24. ";
    25. }else{
    26. echo "?";
    27. }
    Alles anzeigen



    Aber ich bekomme direkt "?" zurück, was ich im else angegeben habe.


    Variante 2:

    PHP-Quellcode

    1. function share_links($code) {
    2. $ch3 = curl_init();curl_setopt($ch3, CURLOPT_URL, "http://share-links.biz/api/status");curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch3, CURLOPT_POST, 1);curl_setopt($ch3, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, 1);$optionen3 = array('apikey' => '0xxx', // Der API-Key, den man als reg. User bekommt'folderCodes' => $code);curl_setopt($ch3, CURLOPT_POSTFIELDS, $optionen3);$rueckgabe3 = explode(';', curl_exec($ch3));curl_close($ch3);
    3. // var_dump($rueckgabe);
    4. return $rueckgabe3;
    5. }
    6. do{
    7. list($sl_foldername, $sl_status) = share_links($sl_foldercode);
    8. }while(!in_array($sl_status, ["parts","online", "offline"]));
    9. //bzw while(!in_array($sl_status, array("parts","online", "offline")));
    10. echo "
    11. Titel: $titel<br />
    12. Untertitel: $titel2<br />
    13. <br /><br />
    14. Genre: $genre<br />
    15. Crack: $crack<br />
    16. Update: $update<br />
    17. Sprache: $sprache<br />
    18. Größe: $grosse<br />
    19. <br /><br />
    20. Beschreibung: $beschreibung<br />
    21. NFO: $nfo<br />
    22. Zusatzinfo: $zusatzinfo<br />
    23. Downloa Links: $downloadlinks<br />
    24. Share-Links.biz: $sl_link<br />
    25. Sharelinks: (Foldername: $sl_foldername | Status: $sl_status)<br />
    26. <br /><br />
    27. Cover Original: $cover<br />
    28. Cover imgur: $cover_out<br />
    29. ";
    30. [/PHP]
    31. Auch das funktioniert nicht. Der Host ist sofort nach dem ausführen offline.
    32. Variante 3 mit sleeper funktioniert auch nicht:
    33. [php]
    34. share_links();
    35. sleep(5);
    36. function share_links($code) {
    37. $ch3 = curl_init();curl_setopt($ch3, CURLOPT_URL, "http://share-links.biz/api/status");curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch3, CURLOPT_POST, 1);curl_setopt($ch3, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, 1);$optionen3 = array('apikey' => $sharelinks_api, // Der API-Key, den man als reg. User bekommt'folderCodes' => $code);curl_setopt($ch3, CURLOPT_POSTFIELDS, $optionen3);$rueckgabe3 = explode(';', curl_exec($ch3));curl_close($ch3);$sl_foldername = $rueckgabe3[1];$sl_status = $rueckgabe3[2];
    38. // var_dump($rueckgabe);
    39. return $rueckgabe3;
    40. }
    41. do{
    42. list($sl_foldername, $sl_status) = share_links($sl_foldercode);
    43. }while(!in_array($sl_status, ["parts","online", "offline"]));
    44. //bzw while(!in_array($sl_status, array("parts","online", "offline")));
    45. echo "
    46. Titel: $titel<br />
    47. Untertitel: $titel2<br />
    48. <br /><br />
    49. Genre: $genre<br />
    50. Crack: $crack<br />
    51. Update: $update<br />
    52. Sprache: $sprache<br />
    53. Größe: $grosse<br />
    54. <br /><br />
    55. Beschreibung: $beschreibung<br />
    56. NFO: $nfo<br />
    57. Zusatzinfo: $zusatzinfo<br />
    58. Downloa Links: $downloadlinks<br />
    59. Share-Links.biz: $sl_link<br />
    60. Sharelinks: (Foldername: $sl_foldername | Status: $sl_status)<br />
    61. <br /><br />
    62. Cover Original: $cover<br />
    63. Cover imgur: $cover_out<br />
    64. ";
    Alles anzeigen


    Und die 3. Variante bringt ebenfalls keinen erfolg.... :/

    PHP-Quellcode

    1. sleep(5);
    2. $ch3 = curl_init();curl_setopt($ch3, CURLOPT_URL, "http://share-links.biz/api/status");curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch3, CURLOPT_POST, 1);curl_setopt($ch3, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, 1);$optionen3 = array('apikey' => $sharelinks_api, // Der API-Key, den man als reg. User bekommt'folderCodes' => $sl_foldercode);curl_setopt($ch3, CURLOPT_POSTFIELDS, $optionen3);$rueckgabe3 = explode(';', curl_exec($ch3));curl_close($ch3);sleep(60);$sl_foldername = $rueckgabe3[1];$sl_status = $rueckgabe3[2];
    3. function share_links($code) {
    4. $ch3 = curl_init();curl_setopt($ch3, CURLOPT_URL, "http://share-links.biz/api/status");curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch3, CURLOPT_POST, 1);curl_setopt($ch3, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, 1);$optionen3 = array('apikey' => $sharelinks_api, // Der API-Key, den man als reg. User bekommt'folderCodes' => $code);curl_setopt($ch3, CURLOPT_POSTFIELDS, $optionen3);$rueckgabe3 = explode(';', curl_exec($ch3));curl_close($ch3);
    5. // var_dump($rueckgabe);
    6. return array ($rueckgabe3[1], $rueckgabe3[2]);
    7. }
    8. list ($folder, $status) = share_links($sl_foldercode);
    9. if($sl_status == "unknown" || $status == "unknown") {
    10. share_links($sl_foldercode);
    11. }
    12. elseif($sl_status == "online" || $sl_status == "offline" || $sl_status == "parts" || $status == "online" || $status == "offline" || $status == "parts"){
    13. echo "
    14. Titel: $titel<br />
    15. Untertitel: $titel2<br />
    16. <br /><br />
    17. Genre: $genre<br />
    18. Crack: $crack<br />
    19. Update: $update<br />
    20. Sprache: $sprache<br />
    21. Größe: $grosse<br />
    22. <br /><br />
    23. Beschreibung: $beschreibung<br />
    24. NFO: $nfo<br />
    25. Zusatzinfo: $zusatzinfo<br />
    26. Downloa Links: $downloadlinks<br />
    27. Share-Links.biz: $sl_link<br />
    28. Sharelinks: (Foldername: $sl_foldername | Status: $sl_status)<br />
    29. <br /><br />
    30. Cover Original: $cover<br />
    31. Cover imgur: $cover_out<br />
    32. ";
    33. }
    Alles anzeigen