Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion Dateiabfrage exitsts

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion Dateiabfrage exitsts

    Hallo Profis,
    mein Script fragt ab ob eine Datei besteht, soweit funktioniert das auch.
    Möchte eine Variable setzen die ich bei der Weiterverarbeitung abfragen kann, oder eine bestehende abfragen.
    Bekomme bei Abfrage nach $ret nach der Funktion leider nichts ausgegeben.

    PHP-Code:
    <?php
    function remoteFileExists($url) {
        
    $curl curl_init($url);
        
    //don't fetch the actual page, you only want to check the connection is ok
        
    curl_setopt($curlCURLOPT_NOBODYtrue);
        
    //do request
        
    $result curl_exec($curl);
        
    $ret false;
        
    //if request did not fail
        
    if ($result !== false) {
            
    //if request was ok, check response code
            
    $statusCode curl_getinfo($curlCURLINFO_HTTP_CODE);  
            if (
    $statusCode == 200) {
                
    $ret 'Wahr';            
            }else{
            
    $ret 'Falsch';
            }
        }
            echo 
    'Status: ' $statusCode;
            echo 
    '<br>Return: ' $ret;
        
    curl_close($curl);
        return 
    $ret;

    }
    $url 'meineURL';
    $exists remoteFileExists($url .'/shop/broker/phpmailer/LICENSE');
    echo 
    'test'.$ret;
    ?>
    Innerhalb der Fuktion kann ich $ret abfragen aber ausserhalb funktioniert das nicht.
    Wie frage ich $test ab?
    Besten dank im voraus
    Gruss André


  • #2
    Hallo,
    $ret ist nur innerhalb function gültig
    Das Ergebnis der Function steht aber doch danach in der Variable $exists

    Kommentar


    • #3
      Vielleicht dazu auch noch mal im Handbuch nachlesen unter return.

      Über den Geltungsbereich von Variablen sollte man schon im Bilde sein.

      Kommentar


      • #4
        Hallo Profis,

        die Abfrage nach $exists funktioniert, möchte die Abfrage erweitern ob es "https oder http" sowie "www" ist.
        Meine URL ist nur unter "https//andres-webdesign.de" erreichbar
        In der Ausgabe erhalte ich:
        URL: Wahr
        URL-Abfrage: https&www
        URL: andres-webdesign.de

        müsste aber "URL-Abfrage: https" sein.

        Wo liegt mein Fehler?

        Script:
        PHP-Code:
        <?php
        function remoteFileExists($url) {
            
        $curl curl_init($url);
            
        //don't fetch the actual page, you only want to check the connection is ok
            
        curl_setopt($curlCURLOPT_NOBODYtrue);
            
        //do request
            
        $result curl_exec($curl);
            
        $ret false;

            
        //if request did not fail
            
        if ($result !== false) {
                
        //if request was ok, check response code
                
        $statusCode curl_getinfo($curlCURLINFO_HTTP_CODE);  
                if (
        $statusCode == 200) {
                    
        $ret 'Wahr';            
                }else{
                    
        $ret 'Falsch';
                }
            }
                echo 
        '<br>Status Funktion oben: ' $statusCode;
                echo 
        '<br>Return Funktion oben: ' $ret;

            
        curl_close($curl);
            return 
        $ret;
        }

        $url 'andres-webdesign.de';


        $datei '/broker/phpmailer/LICENSE';
        $https 'https://';
        $http 'http://';
        $www 'www.';


        $exists remoteFileExists($url $datei);
        //echo '<br>obere Abfrage exists: ' . $exists . '<br>';



        if ( $exists == 'Wahr' ){

            if (
        $exists remoteFileExists($https $www $url $datei)){
                
        $exists remoteFileExists($https $www $url $datei);
                
        $urlabfrage 'https&www';
            }

            elseif (
        $exists remoteFileExists($https $url $datei)) {
                
        $exists remoteFileExists($https $url $datei);
                
        $urlabfrage 'https';
            }

            elseif (
        $exists remoteFileExists($http $www $url $datei)) {
                
        $exists remoteFileExists($http $www .$url $datei);
                
        $urlabfrage 'http&www';
            }

            elseif (
        $exists remoteFileExists($http .$url $datei)) {
                
        $exists remoteFileExists($http .$url $datei);
                
        $urlabfrage 'http';
            }
        }



        if ( 
        $exists == 'Falsch' ){
            if (
        $exists remoteFileExists($https $www $url $datei)){
                
        $exists remoteFileExists($https $www $url $datei);
                
        $urlabfrage 'https&www';
            }    

            else if (
        $exists remoteFileExists($https $url $datei)){
                
        $exists remoteFileExists($https $url $datei);
                
        $urlabfrage 'https';
            }

            else if (
        $exists remoteFileExists($www .$url $datei)) {
                
        $exists remoteFileExists($www .$url $datei);
                
        $urlabfrage 'http&www';
            }

            else if (
        $exists remoteFileExists($url $datei)) {
                
        $exists remoteFileExists($url $datei);
                
        $urlabfrage 'http';
            }


        }

        echo 
        '<br><br>URL: ' $exists;
        echo 
        '<br>URL-Abfrage: ' $urlabfrage;
        echo 
        '<br>URL: ' $url;

        ?>
        Besten Dank im voraus
        Gruss André

        Kommentar


        • #5
          Meine URL ist nur unter "https//andres-webdesign.de" erreichbar
          Das stimmt doch schon mal garnicht.
          You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

          Kommentar


          • #6
            Hallo Chorn,
            deine Aussage hilft mir leider nicht weiter,
            was ist falsch?
            Gruss André
            Gruss André

            Kommentar


            • #7
              Ich schlag mal vor du schaust deine url nochmal genau an

              Kommentar


              • #8
                Hallo Goethe,

                die URL ist "https://andres-webdesign.de"
                die wird im oberen Teil als Falsch ausgegeben, soweit korrekt.

                Dann Frage ich in den IF-Anweisungen weiter ab
                somit müsste mir die exists Abfrage das Ergebnis von
                else if ($exists = remoteFileExists($https . $url . $datei)){
                $exists = remoteFileExists($https . $url . $datei);
                $urlabfrage = 'https';
                ausgeben.
                Also
                URL: Wahr
                URL-Abfrage: https
                URL: andres-webdesign.de

                Es wird aber
                URL: Wahr
                URL-Abfrage: https&www
                URL: andres-webdesign.de
                ausgegeben

                Was ist in meinen Abfragen falsch?
                Besten Dank im voraus

                Gruss André

                Kommentar


                • #9
                  Der Code tut doch genau das was du sagst: Prüfe https+www und gib https+www aus und dann mach gar nichts mehr.

                  deine Aussage hilft mir leider nicht weiter,
                  Die Bedingung die du gestellt hast stimmt einfach nicht, das was DU sagst ist falsch.

                  Meine URL ist nur unter "https//andres-webdesign.de" erreichbar
                  You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

                  Kommentar


                  • #10
                    Hallo Chorn,
                    wenn ich im Browser "http://andres-webdesign.de" oder "http://www.andres-webdesign.de" eingebe werde ich durch meine ".htaccess" immer auf "https://andres-webdesign.de" umgeleitet,
                    somit ist meine URL doch "https://andres-webdesign.de"

                    Du schreibst sie ist es nicht, verstehe ich nicht.
                    Kannst Du mir das erklären?

                    Besten Dank im voraus
                    Gruss André

                    Kommentar


                    • #11
                      Du testest im Browser doch garnicht die URL die dein Script prüft. https://www.andres-webdesign.de/brok...mailer/LICENSE funktioniert. Da wird nichts umgeschrieben oder weitergeleitet. HTTP 200.
                      You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

                      Kommentar

                      Lädt...
                      X