首页 开发编程 正文

php怎么判断http

可以便捷的使用file_put_contents()进行请求。与之配对的函数file_get_contents()则是读取资源。默认file_get_contents()是使用GET请求。...

php怎么判断http,PHP用1个函数实现post请求?

引言

前天的文章,我们说到了如何高效的下载网络资源,对于小体积的文件。可以便捷的使用 file_put_contents() 进行请求。与之配对的函数 file_get_contents() 则是读取资源。

今天我们讨论一下,有没有一种可能,使用一个函数,就可以给服务器发送post请求的数据呢?

学习时间

上一段中我们已经提示了,有一个函数可以用于读取网络资源,也就是间接的发起网络请求。默认 file_get_contents()是使用 GET 请求,如果是POST请求按道理也应该做的来。不过要怎么写呢?

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

其参数形式如下:

string file_get_contents( string $filename[, bool $use_include_path = false[, resource $context[, int $offset = -1[, int $maxlen]]]] )

复杂的功能,我们需要组装后面的参数即可。我们需要使用流操作的上下文 context,传入该函数。

首先构造请求的参数,也就是键值对,这里需要使用 & 进行多参数连接:

$postdata = http_build_query( array( 'name' => 'joe', 'age' => '13' ) );

接着构造请求结构体:

$opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $postdata ) );

最重要的一步,创建基于流的上下文,使用

$context = stream_context_create($opts);

写到这里就“万事俱备只欠东风”了。我们隆重地清楚主旨函数处理这些参数:

$result = file_get_contents('http://example.com/submit.php', false, $context);

之后结果,或者错误内容,就会输出到 $result 对象。使用 false 判断,或者使用已知的接口返回数据类型,进一步处理。

深度定制

上一节的内容并没有考虑网络超时,接口授权,等等情形。本节我们说一个复杂度高一些的,要求处理一个https请求,并配置了 basic auth 的 url,并使用 post 上传数据。

首先还是裁剪请求体:

$opts = array('http' => array( 'method' => 'POST', 'header' => "Content-Type: text/xml\r\n.Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n", 'content' => $body, 'timeout' => 60 ) );

注意我们在请求上添加了 header,这是根据目标 url 的要求添加的。$body 就是上一节中的 $postdata 结构类型。

接着创建流上下文:

$context = stream_context_create($opts);

最后调用函数:

$url = 'https://'.$https_server;

$result = file_get_contents($url, false, $context, -1, 40000);

写在最后

通过上面两个细节的函数处理,大家是不是对 file_get_contents() 有了更加深入的看法,原来这家伙还可以这么用,真是开了眼界!

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

哪个互联网招聘网站靠谱?

说实在的,网站多数靠谱,一般不靠谱的是第三方,而且不是说招聘网站越大,越有名气,就越好。

每个招聘网站的行业专注方向与深度不一样,所以好不好还得看适不适合自己,下面给大家说一下几大类招聘网站:

综合类前程无忧

前程无忧在国内创立了网站+猎头+RPO+校园招聘+管理软件的招聘方案,致力于帮助企业管理人力资源,节约成本。现在全国25个城市设有服务机构,注册用户超过一亿,是国内专业人力资源服务机构。

除此之外,智联招聘、中华英才网、大街网、应届生求职网等等都属于综合类,提到的这几个也都是较为出名的招聘网站。

地方类

说到地方类招聘网站,较为出名的当属58同城,但要注意58同城是一个生活服务平台,招聘只是一个业务,所以业务覆盖包含房产、汽车、二手、本地生活服务及金融等各个领域。

在全国范围内共设立30余家分公司,并在500余个城市建立网络平台,尽显58同城本地化、覆盖广、更专业的商业优势,获得更多客户和用户地认可,活跃本地商户数量超1000万,大公司就值得信任,合作商也多,选择更多。

除此之外,地方类招聘网站其实在每个地方都有,比如广东招聘网,湖南人才网等等各种以省市命名的招聘网站,比比皆是。

行业垂直类数字营销及广告

顾名思义就是专注于数字营销的招聘网站,名气比较大的有独角招聘、数英网招聘等。

互联网行业

这一类首推拉勾网,PMCAFF社区产品招聘,另外一大网站为boss直聘,但是口碑向来不是很好,但是boss直聘优势在于能够直接会聊,这几家都是更多地专注于互联网IT行业招聘的。

产品经理

这一类主要有秒聘网、产品经理社区等。

事实上,每个行业都有类似上面的垂直类招聘网站的,其中包括但不限于兼职类、远程工作类、自由职业类等,比如建筑类的建筑英才网、事业单位的全国事业单位招聘网。

最后提一下,一般来说大中型企业都有自己的官网,以及官网使用的招聘管理系统,所以说,如果想要进某些如同阿里、腾讯、字节等这样的大公司大企业,最好还是通过官网招聘页面进行投递,如果有内部推荐也要记得利用好,当然打铁还需自身硬,了解网站是第一步,提升自己才是关键,希望这个回答能帮到大家。

感谢大家的阅读,我是@饭后余谈 ,每日为大家带来最新热议,最新数据,职场故事与经验,不一样的内容但一样的有趣,欢迎大家的关注与讨论。

php如何实现真正的全局变量?

首先明确一点 php的全局变量可以分为

1.自定义的全局变量

通过关键字 global 声明变量为全局变量

$a =1;function bb(){ global $a;}

2.系统自带的全局变量

php系统自带的全局变量也有很多 ,也是可以去使用的,例如:

$_SERVER (主要存储http 请求相关的信息)$_REQUEST (默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组)$_POST (主要是http POST 请求的参数)$_GET (主要是http GET 请求的参数)$_FILES (主要是http 文件相关的参数)$_ENV (是一个包含服务器端环境变量的数组)$_COOKIE (主要是存储浏览器临时缓存的信息)$_SESSION (主要是php 服务 会话存储信息)

PHP和Nodejs哪个更好用?

这个不大好比。

首先,他们不是同一类东西。就目前而言,PHP除了做网站外,其他用得不多,毕竟他是为做网页而生的。一般地,node.js是一个js运行环境,通常人们拿它来做http server,对于某些情况,性能几乎是当前http server中最好的,但毕竟作为http server还比较年轻,对一些应用情景还不是特别有效。但node不仅仅做网站,由于他是一个js运行环境,基本可以做独立语言的事情,只要你愿意,几乎可以做你想做的。

其次,就http server而言,两个的设计理念也不同。PHP是依附在其它http server上的开发语言,对学习、使用者而言,除了了解PHP语言本身,还要对你的http server有一定了解,不同server的api各不相同,对要求“精通”编程的程序员来说,并不是一件很简单的事情。node本身是一个js运行环境,用其提供的内置api你能“写”一个非常简单的http server,要做“全功能”http server,有很多的模块及方案,例如express,但总的来说都是node内部的事情,同宗同族。

再次,从web开发角度看,纯服务器端渲染会越来越少。主要是现在终端的性能比较强,浏览器纯从服务器获取HTML显示比较浪费客服端性能,同时又极大增加服务器端负荷,所以在两端适当调整负荷是必然,随着客服端框架的发展,spa应用会越来越多,这有利负荷分担,流量减少,反应速度提高。就算不是spa,(b/c)——s之间的数据都更多地以json/xml进行交互而减少html,本质就是减少服务器端渲染,server更多担负数据中心的角色。对于这种逐步演进的应用,node就比PHP有优势:你可以把代码逐步地从s端向c端转移,直到自己认为合适,包括服务器负载,客户端体验……;而PHP暂时还不行。

最后,node是JavaScript绑定的语言环境,可以看做是一门独立的语言,不但可以做server,还可以做工具,做client,例如nw绑定,electron绑定等,这样你可以有更大的灵活性。

当然,萝卜白菜,做自己喜欢的事情还是最重要的,人家合适的不一定你合适,找到合适的就好。

javascript的区别和联系?

[ XML ]

使用XML作为传输格式的优势:

1. 格式统一, 符合标准

2. 容易与其他系统进行远程交互, 数据共享比较方便

缺点:

1. XML文件格式文件庞大, 格式复杂, 传输占用带宽

2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护

3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码

4. 服务器端和客户端解析XML花费资源和时间

[ JSON ]

那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.

优点:

1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小

2. 易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取

3. 支持多种语言, 包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等语言服务器端语言, 便于服务器端的解析

4. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.

另外PHP的PEAR类已经提出了支持 (http://pear.php.net/pepr/pepr-proposal-show.php?id=198)

5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护

缺点:

1. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性

2. JSON格式目前在Web Service中推广还属于初级阶段

本文转载自互联网,如有侵权,联系删除