首页 开发编程 正文

php 链接怎么做

然后进行重连2、PHP用1个函数实现post请求?可以便捷的使用file_put_contents()进行请求。与之配对的函数file_get_contents()则是读取资源。默认file_get_contents()是使用GET请求,file_get_contents()函数是用来将文件的内容读入到一个字符串中的首选方法。bool...

php 链接怎么做,phpredis长连接多久会断?

$redis->connect($host, $port, $timeout);最后一个参数就是超时时间,长连接是不会断的,除非你自己去close或者服务器那边断了,这个时候可以捕获错误,然后进行重连

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 :_)

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

phpstudy怎么使用mysql?

1.首先查看phpstudy中mysql的路径:比如:E:\phpStudy\MySQL\bin

2.然后打开dos窗口,将目录切换至mysql,bin目录下:

3.输入mysql命令,进行连接:mysql -h localhost -u root -p 回车;输入密码再次回车。mysql连接成功!

php怎么将数据导入redis?

开始在PHP中使用redis前,要确保已经安装了redis服务及PHPredis驱动,且你的机器上能正常使用PHP。

PHP安装redis扩展

/usr/local/php/bin/phpize#php安装后的路径

./configure--with-php-config=/usr/local/php/bin/php-config

make&&makeinstall

修改php.ini文件

vi/usr/local/php/lib/php.ini

增加如下内容:

extension_dir="/usr/local/php/lib/php/extensions/no-debug-zts-20090626"

extension=redis.so

安装完成后重启php-fpm或apache。查看phpinfo信息,就能看到redis扩展。

连接到redis服务

<?php

//连接本地的Redis服务

$redis=newRedis();

$redis->connect('127.0.0.1',6379);

echo"Connectiontoserversucessfully";

//查看服务是否运行

echo"Serverisrunning:".$redis->ping();

?>

执行脚本,输出结果为:

Connectiontoserversucessfully

Serverisrunning:PONG

RedisPHPString(字符串)实例

<?php

//连接本地的Redis服务

$redis=newRedis();

$redis->connect('127.0.0.1',6379);

echo"Connectiontoserversucessfully";

//设置redis字符串数据

$redis->set("tutorial-name","Redistutorial");

//获取存储的数据并输出

echo"Storedstringinredis::".jedis.get("tutorial-name");

?>

执行脚本,输出结果为:

Connectiontoserversucessfully

Storedstringinredis::Redistutorial

RedisPHPList(列表)实例

<?php

//连接本地的Redis服务

$redis=newRedis();

$redis->connect('127.0.0.1',6379);

echo"Connectiontoserversucessfully";

//存储数据到列表中

$redis->lpush("tutorial-list","Redis");

$redis->lpush("tutorial-list","Mongodb");

$redis->lpush("tutorial-list","Mysql");

//获取存储的数据并输出

$arList=$redis->lrange("tutorial-list",0,5);

echo"Storedstringinredis::"

print_r($arList);

?>

执行脚本,输出结果为:

Connectiontoserversucessfully

Storedstringinredis::

Redis

Mongodb

Mysql

RedisPHPKeys实例

<?php

//连接本地的Redis服务

$redis=newRedis();

$redis->connect('127.0.0.1',6379);

echo"Connectiontoserversucessfully";

//获取数据并输出

$arList=$redis->keys("*");

echo"Storedkeysinredis::"

print_r($arList);

?>

执行脚本,输出结果为:

Connectiontoserversucessfully

Storedstringinredis::

tutorial-name

tutorial-list

PHP生成HTML以后?

主要可以用以下三种方法:

1、利用超链接<a href="test.php">连接文字</a>还可在test.php后面添加“?id=idvalue&cate=catevalue”等以给test.php传递必要的参数,在test.php中可以利用$_GET[id]和$_GET[cate](或者$_REQUEST[id]和$_REQUEST[cate])获取参数的值。

2、利用表单提交<form action="test.php“ method="GET">表单内容</form>此处method可以为GET(test.php,获取参数如1;也可以为POST,获取参数类似1,不过要把GET改为POST,REQUEST通用)3、利用ajax技术。另外,还可以利用html中的frame技术。

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