이 기사에서는 플러그인 클래스에 send_post라는 새 메소드를 정의합니다. 이 메소드에서는 시스템 구성을 통해 인터페이스 호출 주소를 얻습니다.
Baidu의 예제에서는 php의 CURL을 사용하여 더 고급 사용법을 알아보려면 PHP_cURL 초기화 및 실행 방법
을 참조하세요.바이두 웹마스터가 제공한 코드를 조합해 보겠습니다.
/** * 发送数据 * @param $url 准备发送的url * @param $options 系统配置 */ public static function send_post($url, $options){ //获取API $api = $options->plugin('BaiduSubmitTest')->api; //准备数据 if( is_array($url) ){ $urls = $url; }else{ $urls = array($url); } $ch = curl_init(); $options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); //记录日志 file_put_contents('/tmp/send_log', date('H:i:s') . $result . "\n"); }
아직 로깅 시스템을 구축하지 않았기 때문에 로그를 파일에 먼저 쓰고 효과를 먼저 보도록 하겠습니다!
반환 값:
public static function send_post($url, $options){ //获取API $api = $options->plugin('BaiduSubmitTest')->api; //准备数据 if( is_array($url) ){ $urls = $url; }else{ $urls = array($url); } //为了保证成功调用,老高先做了判断 if (false == Typecho_Http_Client::get()) { throw new Typecho_Plugin_Exception(_t('对不起, 您的主机不支持 php-curl 扩展而且没有打开 allow_url_fopen 功能, 无法正常使用此功能')); } //发送请求 $http = Typecho_Http_Client::get(); $http->setData(implode("\n", $urls)); $http->setHeader('Content-Type','text/plain'); $result = $http->send($api); //记录日志 file_put_contents('/tmp/send_log', date('H:i:s') . $result . "\n"); } }
이제 플러그인을 기본적으로 실행할 수 있지만 구조를 더욱 최적화할 수 있습니다!