Új hozzászólás Aktív témák

  • Taci

    addikt

    válasz Taci #20607 üzenetére

    Na jó, ezt nem értem. :N

    Csináltam egy eléggé overkill funkciót az ellenőrzésre:

    function testIfValidURL($url){
       $headers=get_headers($url, 1);
       
       $url_valid_state = "";
       if (stripos($headers[0],"200 OK")){
           //URL Valid
           echo "URL is Valid (200 OK): " . $url . "<br>";
           $url_valid_state = TRUE;
           
           return TRUE;
           //exit();
       } else if (stripos($headers[0],"301") || stripos($headers[0],"302")){
           //URL Redirected (301 or 302)
           echo "URL Redirected (301 or 302): " . $headers[0] . ". Checking Location link.<br>";
           
           if (array_key_exists('Location', $headers)){
               if (is_array($headers['Location'])){
                    //Array
                    echo "Headers Location type is array.<br>";
                    
                    $location_count = count($headers['Location']);
                    echo "location_count: " . $location_count . "<br>";
                    
                    $url_valid_state_check = 0;
                    foreach ($headers['Location'] as $headers_location_value){
                        echo "Checking headers_location_value: " . $headers_location_value . "<br>";
                        if(testIfValidURL($headers_location_value)){
                            $url_valid_state_check++;
                            return TRUE;
                            //exit();
                        }
                    }
                    echo "url_valid_state_check: " . $url_valid_state_check . "<br>";
                    
                    if ($url_valid_state_check > 0){
                        $url_valid_state = TRUE;
                    } else {
                        $url_valid_state = FALSE;
                    }
               } else if (is_string($headers['Location'])){
                    echo "Headers Location type is string. Checking.<br>";
                    if(testIfValidURL($headers['Location'])){
                        $url_valid_state = TRUE;
                    }
               }
               
           } else {
               echo "URL header doesn't include Location. Setting URL valid state to FALSE.";
               $url_valid_state = FALSE;
           }
           
       } else {
           echo "URL status code is unknown: " . $headers[0] . ". Setting URL valid state to FALSE.";
           $url_valid_state = FALSE;
       }
       
       return $url_valid_state;
    }

    Az eredeti linkkel próbáltam:
    https://www.szeretlekmagyarorszag.hu/ime-a-tokeletes-toltott-kaposzta-receptje/

    A kimenet:
    URL Redirected (301 or 302): HTTP/1.1 301 Moved Permanently. Checking Location link.
    Headers Location type is array.
    location_count: 2
    Checking headers_location_value: https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje
    URL Redirected (301 or 302): HTTP/1.1 301 Moved Permanently. Checking Location link.
    Headers Location type is string. Checking.
    URL is Valid (200 OK): https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje/

    Mondom nagyszerű, nézzük meg egy direkt elrontott linkkel is, utána írtam egy 1-est:
    https://www.szeretlekmagyarorszag.hu/ime-a-tokeletes-toltott-kaposzta-receptje/1

    A kimenet:
    URL Redirected (301 or 302): HTTP/1.1 301 Moved Permanently. Checking Location link.
    Headers Location type is string. Checking.
    URL is Valid (200 OK): https://www.szeretlekmagyarorszag.hu/eletstilus/1-arany-5-ezust-2-bronz-es-8-olimpiai-kvota/

    :DDD
    Hát ez az 1 arany 5 ezüst dolog hogy került oda? :DDD (Kínomban röhögök már.)

    Kérem, valaki magyarázza el, mi történik itt.
    Amúgy ha 123456-ot írok a végére, akkor meg megint a jó linkre dob tovább, és a korábban írt output lesz.

    Ez így megbízhatatlan, használhatatlan.

Új hozzászólás Aktív témák