Deprecated
: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in
/www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php
on line
1057
首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
5
篇与
的结果
2023-08-10
php发送http put/patch/delete请求Demo
php发送http put/patch/delete请求DemoCURL请求对于PHPer是必备技能,使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和post。在测试自己的restful api的时候,通过访问这个代理发送http put/patch/delete请求的php页面,完成测试。请参考下面的DEMO。<?php /** * http.php * 用来向服务器的RESTful API发起各类HTTP请求的工具函数。 * * 使用: http://localhost/http.php?action=xxx * xxx \in {get,post,put,patch,delete} * * Created by PhpStorm. * User: Lenix * Date: 2018/1/6 * Time: 下午20:22 */ class commonFunction{ public function callInterfaceCommon(string $URL, string $type, string $params, array $headers):string { $ch = curl_init($URL); $timeout = 5; if($headers!=""){ curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers); }else { curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type: application/<a class="wpal-linked-keyword" href="http://json.p2hp.com/" target="_blank">json</a>')); } curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); switch ($type){ case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true);break; case "POST": curl_setopt($ch, CURLOPT_POST,true); curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break; case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break; case "PATCH": curl_setopt($ch, CULROPT_CUSTOMREQUEST, 'PATCH'); curl_setopt($ch, CURLOPT_POSTFIELDS, $params);break; case "DELETE":curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break; } $file_contents = curl_exec($ch);//获得返回值 return $file_contents; curl_close($ch); } } $params="{user:\"admin\",pwd:\"admin\"}"; //$headers=array('Content-Type: text/html; charset=utf-8'); //$headers=array('accept: application/json; Content-Type:application/json-patch+json'); $headers=array('Content-Type:application/json-patch+json'); #$url=$GLOBALS["serviceUrl"]."/user"; $url='http://localhost/action.php'; $cf = new commonFunction(); $action=strtoupper($_GET['action']); echo "你指定的HTTP请求动作为".$action."<br/><hr/>"; $strResult = $cf->callInterfaceCommon($url,$action,$params,$headers); echo "执行该HTTP请求动作,得到<br/>".$strResult;
2023年08月10日
46 阅读
0 评论
0 点赞
2023-08-09
PHP CURL CURLOPT_HTTPHEADER设置HOST主机头进行外网访问
为了安全,我们的web服务主机往往不能上网。维护的时候,也是通过跳板机,ssh登录后去操作。有时候我们的程序需要访问外网。比如需要调用外网其他程序的某个接口。这下该怎么办呢?我们可以通过PHP的CURL函数的CURLOPT_HTTPHEADER来配置设置host访问。在开发中,我遇到这样一个例子。有一个活动程序,需要调用qzone那边的一个接口。如下代码示例:$host = array("Host: act.qzone.qq.com"); $data = 'user=xxx&qq=xxx&id=xxx&post=xxx'; $url = 'http://192.168.1.12/xxx/xxx/api/'; var_dump( $this->curl_post($host, $data,$url) ); / * 提交请求 * @param $host array 需要配置的域名 array("Host: act.qzone.qq.com"); * @param $data string 需要提交的数据 'user=xxx&qq=xxx&id=xxx&post=xxx'.... * @param $url string 要提交的url 'http://192.168.1.12/xxx/xxx/api/'; */ function curl_post($host,$data,$url) { $ch = curl_init(); $res= curl_setopt ($ch, CURLOPT_URL,$url); var_dump($res); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$host); $result = curl_exec ($ch); curl_close($ch); if ($result == NULL) { return 0; } TMDebugUtils::debugLog($result); return $result; }通过PHP CURL CURLOPT_HTTPHEADER设置HOST很方便的解决了访问外网接口的问题。
2023年08月09日
20 阅读
0 评论
0 点赞
2023-08-07
php curl 突破防盗链
php curl 突破防盗链<?php $img=$_GET['img']; function fetch_urlpage_contents($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 1000); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 1000); curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)'); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:110.80.7.42', 'CLIENT-IP:110.80.7.42')); //构造IP curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com/"); //构造来路 //curl_setopt($ch, CURLOPT_HEADER, 1); $file_contents = curl_exec($ch); $imgurl=str_replace("http://","",$url); $imgurl=str_replace("/","-",$imgurl); $fp = fopen('imgs/'.$imgurl, 'w'); fwrite($fp,$file_contents); fclose($fp); header("Location:imgs/$imgurl"); curl_close($ch); return $file_contents; } $urls='http://img1.xxxxxx.com/'.$img; $haha=fetch_urlpage_contents($urls); //echo $haha;
2023年08月07日
32 阅读
0 评论
0 点赞
2023-08-07
curl php 图片采集
curl php 图片采集<?php $values="http://wiki.mbalib.com/w/images/3/35/%E7%BB%93%E6%9E%84%E6%80%A7%E5%8D%B1%E6%9C%BA%E7%9A%84%E8%A6%81%E7%B4%A0.jpg"; function getimg($url, $filepath) { if ($url == '') { return false; } $ext = strrchr($url, '.'); // if ($ext != '.gif' && $ext != '.jpg') { // return false; //} //判断路经是否存在 !is_dir($filepath)?mkdir($filepath):null; //获得随机的图片名,并加上后辍名 $filename=uniqid().".jpg"; //读取图片 $img = fetch_urlpage_contents($url); //指定打开的文件 //$fp = @ fopen($filepath.'/'.$filename, 'a'); $fp = @ fopen($filename, 'a'); //写入图片到指定的文本 fwrite($fp, $img); fclose($fp); return $filename; } function fetch_urlpage_contents($url){ $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 1000); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 1000); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:110.80.7.42', 'CLIENT-IP:110.80.7.42')); //构造IP curl_setopt($ch, CURLOPT_REFERER, "http://wiki.mbalib.com/ "); //构造来路 //curl_setopt($ch, CURLOPT_HEADER, 1); $file_contents = curl_exec($ch); curl_close($ch); return $file_contents; } echo getimg($values,"aaa") //图片地址 //保存路径 //返回保存后路径
2023年08月07日
7 阅读
0 评论
0 点赞
2023-08-07
php curl 抓取 post数据
php curl 抓取 post数据<?php $post_data = array ( 'kw' => 'php', //表单名及内容 'submit' => 'Submit' //提交 ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.somexxx.com/baidu/words.aspx'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, count($post_data)); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $output = curl_exec($ch); curl_close($ch); preg_match('#<div id="contenthtml">.*</table>#s',$output,$content); print_r($content); ?>
2023年08月07日
11 阅读
0 评论
0 点赞