PHP 는 HTTPS 내용 을 캡 처 합 니 다.
3500 단어 phphttps 가 져 오기
file_get_contents()
를 사용 하여 API 에서 제공 하 는 데 이 터 를 가 져 오 는 중 오류 가 발생 했 습 니 다.사용 하 는 코드 는 다음 과 같 습 니 다.
<?php
$data = file_get_contents("https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty");
......
위의 코드 를 실행 할 때 아래 의 오류 알림 을 만 났 습 니 다.
PHP Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
다음은 캡 처:왜 이런 오류 가 발생 했 습 니까?
인터넷 에서 검색 을 한 결과 이런 오 류 를 당 한 사람 이 아직도 적지 않다 는 것 을 알 게 되 었 습 니 다.문 제 는 매우 직접적 입 니 다.왜냐하면 PHP 의 설정 파일 에 인자 가 하나 도 열 리 지 않 았 기 때 문 입 니 다.제 컴퓨터 에 서 는
/apache/bin/php.ini
의;extension=php_openssl.dll
항목 입 니 다.앞의 번 호 를 제거 해 야 합 니 다.PHP 환경 설정 을 아래 스 크 립 트 로 확인 할 수 있 습 니 다.
$w = stream_get_wrappers();
echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "
";
echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "
";
echo 'https wrapper: ', in_array('https', $w) ? 'yes':'no', "
";
echo 'wrappers: ', var_dump($w);
위의 스 크 립 트 세 션 을 실행 합 니 다.제 기계 에서 얻 은 결 과 는:
openssl: no
http wrapper: yes
https wrapper: no
wrappers: array(10) {
[0]=>
string(3) "php"
[1]=>
string(4) "file"
[2]=>
string(4) "glob"
[3]=>
string(4) "data"
[4]=>
string(4) "http"
[5]=>
string(3) "ftp"
[6]=>
string(3) "zip"
[7]=>
string(13) "compress.zlib"
[8]=>
string(14) "compress.bzip2"
[9]=>
string(4) "phar"
}
대안잘못 을 발견 하고 잘못 을 고 치 는 것 은 간단 하 다.어 려 운 것 은 잘못 을 발견 한 후에 잘못 을 고 칠 수 없다 는 것 이다.나 는 원래 이 스 크 립 트 방법 을 원 격 호스트 에 적용 하려 고 했 지만 원 격 호스트 의 PHP 설정 을 수정 할 수 없 었 다.결 과 는 이 방안 을 사용 할 수 없 었 다.그러나 우 리 는 나무 에 목 을 매 죽 을 수 없 었 다.이 길 은 통 하지 않 았 다.다른 길이 있 는 지 살 펴 보 자.
또 다른 내 가 자주 사용 하 는 PHP 에서 내용 을 캡 처 하 는 함 수 는
curl
로file_get_contents()
보다 강하 고 선택 가능 한 인 자 를 많이 제공 합 니 다.방문HTTPS
내용 에 대한 문제 에 대해 우리 가 사용 해 야 할CURL
설정 매개 변 수 는:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
SSL 보안 인증 을 무시/건 너 뛰 었 다 는 것 을 의미 에서 알 수 있다.이것 은 좋 은 방법 이 아 닐 지 모 르 지만,일반적인 장면 에서 이 정도 면 충분 하 다.다음은
Curl
패 키 징 을 이용 하여 HTTPS 내용 에 접근 할 수 있 는 함수 입 니 다.
function getHTTPS($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
이상 은 php 가 https 내용 을 가 져 오 는 모든 과정 입 니 다.간단 하고 실 용적 이 며 같은 프로젝트 에 필요 한 파트너 에 게 추천 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.