2017-12-05 5 views
0

전보 봇을 관리하기 위해 PHP를 사용하고 있습니다. 기본적으로 전보 할 수있는 사용자가이 URL 내에서 봇에서 업데이트를 얻을 수있는 기능을 추가했다 :PHP로 웹 페이지의 내용을 얻는 방법

https://api.telegram.org/bot[TOKEN_NUMBER]

지금 내가 알고 싶은를, 내가 검색거야 로봇이 존재하지 않거나 .

그래서 당신은 로봇의 잘못된 토큰 번호, API 페이지 수익을 입력 할 때마다이 :

{"ok":false,"error_code":401,"description":"Unauthorized"} 

그리고이 대신 페이지 반환 존재하는 경우 :

{"ok":true,"result":[]} 

당신은 내가 볼 수 있듯이 이 페이지의 내용을 가져 와서 봇의 존재를 알아 내기 위해 몇 가지 변수를 결정해야합니다. 그렇다면 PHP로 어떻게 할 수 있습니까? , 그것은 당신의 브라우저에서 동일한 URL을 열 때 표시대로 돌아갑니다)

$content = file_get_contents($url); 

또는 file_get_contents를 (사용 컬 http://php.net/manual/en/curl.examples-basic.php

<?php 

$ch = curl_init("http://www.example.com/"); 
$fp = fopen("example_homepage.txt", "w"); 

curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
?> 
+1

[컬 (http://php.net/curl) 또는 쉽게? – hassan

답변

0

빠르고 get_headers

$headers=get_headers('https://api.telegram.org/bot/12345'); 
$active=$headers[0]=='HTTP/1.1 404 Not Found' ? false : true; 

당신은 다음 사용할 수 있습니다 사용하여 두 라이너 쉽게 처리를 계속하거나 중단하려면 부울 논리 테스트에 $active을 입력하십시오. 이용하여 file_get_contents (http://php.net/file_get_contents)

if($active){/* do stuff */} else {/* go to the pub */} 
4

당신은 사용할 수 있습니다. 당신은 또한 당신이 바퀴 번을 발명하지 않아도되도록, 이렇게하려면 Composer packages을 살펴 가질 수)

+0

좋았지 만 지금은이'$ ch = curl_init ("https://api.telegram.org/bot". $ token. "/ getUpdates");를 테스트하고'{ "ok": false, "error_code": 409, "description": "충돌 : 웹 훅이 활성화되어있는 동안 getUpdates 메소드를 사용할 수 없습니다."} (봇 업데이트의 현재 상태),'{ "ok": false, error_code ": 404,"description ":"Not Found "} ' – wrephebiajou

+0

url 문자열을/var_dump 에코하려면 올바르게 형식화되어 있습니까? 누락 된'/'이 있습니까? – am05mhz

1

시도를 사용