url is_readable 읽을 수 있는 파일인가? > PHP
PHP

url is_readable 읽을 수 있는 파일인가?

조회 16회 댓글 0건

내장함수인 is_readable 함수는 파일이 있는지 그리고 읽을 수 있는 권한이 있는지 까지 체크를 해주는 함수인데 URL 체크기능은 없어 만들어진 클래스 입니다.

USER_AGENT는 자주 변경 될 수 있어 외부의 글로벌 변수가 있으면 그것을 사용 합니다.


그리고 ssl 인증서 무시할것인지. 

네트워크를 통한 접속의 시간을 제한

페이지가 이동 되었을때 자동으로 찾아서 이동 할것인 선택하는 옵션이 있습니다.



  class PabburiUtil
  {
    static function is_readable( $file, $ssl_validation=false, $timeOut=3, $followLocation=true ) {
      global $USER_AGENT;
 
      if ( !isset($USER_AGENT) || strlen($USER_AGENT) < 20 ) {
        $USER_AGENT   = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36';
      }

      $rReadable  = false;
      if ( stristr($file, 'http://') || stristr($file, 'https://') )
      {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $file);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, true);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl, CURLOPT_USERAGENT, $USER_AGENT);
        curl_setopt($curl, CURLOPT_TIMEOUT, $timeOut);
        if ( $followLocation ) {
          curl_setopt ($ch,CURLOPT_FOLLOWLOCATION , $followLocation);
        }
        // 인증서 유효성 무시
        if ( $ssl_validation ) {
          curl_setopt($curl, CURLOPT_SSL_VERIFYHOST , false);
          curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);
        }
        $response = curl_exec($curl);
        $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        if ($httpCode == 200) {
          $rReadable = true;
          // 여기서 필요한 추가 로직을 수행할 수 있습니다.
          // 예: 파일 내용 가져오기 등
          //$fileContents = file_get_contents($file);
          //$parsedData = json_decode($fileContents);
          //$rReadable = !empty($parsedData);
 
          // 가져온 헤더 정보 출력하기 (선택사항)
          //$headerSize = curl_getinfo($curl,CURLINFO_HEADER_SIZE);
          //$headers = substr($response, 0 , $headerSize);
          //echo "Headers: ".$headers;
         }
         curl_close ($curl);
      }
      else {
       $rReadable   = is_readable($file);
      }

      return $rReadable;
    }
  }

  $rr       = PabburiUtil::is_readable($file, false, 5, true);
  echo '$rr: ' . $rr . "<br>" . PHP_EOL;
 



  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 161건 1 페이지
  • profile_image 프로그램을 변경 했는데 오류가 발생하고 잘못 되었다고 메시지가 나와 30분 가량 고생 했는데 원인은 갱신된것이 반영이 되지 않아서 였습니다.이런 경우에 문제가 될 수 있는것중 하나가 캐쉬 인데 우선 설정값으로 봤을 때는 몇 초면 해결이 되어야 하지만 그렇지 않기 때문에 다른 원이 있을 수 있습니다.하지만 확인해볼 수 있는것중 하나이기 때문에 PHP의 캐쉬를 사용하지 않아 보고 경과를 보는것도 방법이 될 수 있습니다.다음은 FTP를 이용하게 되면…
  • profile_image PHP 내장 클래스를 이용해서 간단한 방식으로 타임존의 시간을 변경하는 함수 입니다.아래 예는 UTC에서 KST(대한민국) 으로 변경하는데 9시간 차이나는 것을 확인 하면 됩니다.아래는 각 국가별 타임존 변경시 필요한 정보 입니다.List of Supported Timezones https://www.php.net/manual/en/timezones.php   /**   * 타임존 변경   *    * @param string $time  …
  • profile_image 이중콜론은 상수와 static 변수인 경우 사용이 가능 하다 . 아래 예제를 보면 이중콜론(더블콜론) 사용에 대한 이해가 쉽습니다.단 주의할것은 이중콜론 보다는 $this 부분에서 어디서 사용 하느냐에 따라 달라지는 경우가 있습니다. class ParentClass {  const T1 = '상수 - parent' . PHP_EOL;  function test() {    // 현재 이것을 의미하기 때문에 현재 객체가 된다.    // 하위에서…
  • profile_image private는 현재 자신의 클래스에서만 사용이 가능하다. 상속이 안된다. 하위클래스에서 사용하고 싶으면 중간 클래스에서 받아서 그 하위에서 사용 할 수 있게 전달해 주면 된다. 상속시 변수, 상수를 하위 클래스에서 사용해야 된다면 public 또는 protected 를 사용하면 된다. 클래스 상속시 변수,상수 사용 PHP에서는 상속 체인을 따라 부모의 부모, 그리고 그 이상의 상위 클래스에 정의된 변수에 직접 접근하는 방법은 제공하지…
  • profile_image 프로그램을 하다보면 현재 디렉토리의 위치나 현재 실행되고 있는 함수나 클래스명을 알고 싶을때가 있는데 아래는 클래스명을 알 수 있는 2가지 방법에 대한 것입니다.   현재의 클래스명 가져오는 방법 현재 클래스의 이름을 가져오려면 get_class() 함수 또는 CLASS 매직 상수를 사용할 수 있습니다.   get_class() 함수 이 함수는 인스턴스가 주어지면 해당 인스턴스의 클래스 이름을 반환합니다. 인자 없이 호출하면 현재 객체의 클래…
  • profile_image 배열의 데이터를 기준으로 각각 오름차순, 내림차순 처리를 할 수 있는 함수 입니다.샘플 데이터에선 이름, 나이, 몸무계로 확인이 가능 합니다.  /**   * sort_data   *   * @param array $data   * @param bool $nameAscending   * @param bool $ageAscending   * @param bool $weightAscending   *   * @return array   *   */…