好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php请求自己 php处理请求的流程

很多站长朋友们都不太清楚php请求自己,今天小编就来给大家整理php请求自己,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 一个php请求怎样才算结束? 2、 怎么用PHP发送HTTP请求 3、 php能自己POST到自己吗 4、 PHP。POST请求的问题 5、 问下php中提交请求的问题!! 6、 php网络请求方式的两种常用类型 一个php请求怎样才算结束?

所以:一些一个php脚本最后肯定是需要echo一些数据来返回给请求它的user的(这里的user指的是浏览器)。网上也有很多文章在讨论说:echo速度慢,其实这是没有正明白:怎样才算一个php请求的完整过程的缘故。 比如我写如下php脚本: [php]view plaincopy<?php $var['key'] = "temp"; echo json_encode($var); ?> 原本我认为:当执行完第二句echo之后这个请求就算执行完了,然后就该web-server回收这个线程了。问题是:这个时候真的执行完了吗?没有! ①对于echo,var_dump()等而言:其实要把数据返回给user(浏览器)的。echo的执行过程为:其会把数据发送给user,user收到数据并反馈回来告知:我已经收到了。echo函数收到这个成功信号之后:其才会认为:自己使命结束了,这个函数才算执行完毕。 因为有上述这么个过程,会导致大量问题,比如:如果user的网络不好,那这个等待发送成功信号的过程会很慢,严重影响这个php脚本的执行速度,争议延长其执行时间,同时导致这个请求的执行线程一直无法回收。 那拿到具体项目上来说:几百万个请求同时请求一个相同的服务器,由于每个的执行时间都过程,这导致大量处理线程无法及时回收,导致服务器端积攒了大量线程。这回严重影响服务器的响应!! 那怎样解决这些问题呢?要解决这个问题就要从产生这个问题的根源上着手。根源就在于如上所说的:echo本身执行较慢以及php处理线程未释放。 ①为了处理echo较慢的问题,我们可以打开php的输出缓存。亦即:每次echo返回给用户的数据我们直接让php将之存入php输出缓存中并给出成功应答,这时echo函数会认为其已经达到user端并成功了,从而执行完毕。 用这种办法解决了echo处理慢的问题;但是echo执行完后php处理线程并未释放,为什么呢?因为此时php的输出缓存中还有刚刚存入的数据没有发送出去,此时php线程当然不能释放。所以他还得等自己输出缓存中的数据都发送出去了才能释放线程。从这一点上来说:使用之中方法后:线程存在的时间根本就没有减少,只是把原本echo消耗的时间转义到了输出缓存上而已。同时php缓存有大小限制,若echo的数据比这个限制要大,则根本无法存到输出缓存中。 ②最终极的解决办法是:我们打开apache的输出缓存。这样执行echo时:直接把数据发送到apache的输出缓存中并返回成功信号。echo函数收到信号就认为是成功执行了所以就执行完毕。此时php线程发现自己:整个脚本都执行完毕了,也没有输出缓存要去发送,自己的所有工作都做完了,于是乎就释放自己本身了。 用这种办法:会真正减少一个php处理进程的执行时间,让这个线程尽快释放,从而减少服务器上的线程数量堆积!!其本质是:把处理时间由php转给了apache! 但是这样好处是显而易见的:无论是apache还是php线程去处理这个,都是要消耗同样的时间等资源。但是用php还要额外多了线程消耗。开启了 apache输出缓存后:就大大减少了服务器上的线程数量堆积!! 其实这种办法并没有让用户更快的受到数据,亦即:对用户本身而言没有任何优化;但是对服务器却是很大的优化,因其加快了每个请求的处理速度,避免了线程堆积导致的问题!!!

怎么用PHP发送HTTP请求

方法一:利用php的socket编程来直接给接口发送数据来模拟post的操作。

建立两个文件post.php,getpost.php

post.php内容如下:

<?php

$flag = 0;

$post = '';

$errno = '';

$errstr = '';

//要post的数据

$argv = array(

'var1'=>'abc',

'var2'=>'how are you , my friend??');

//构造要post的字符串

foreach ($argv as $key=>$value) {

if ($flag!=0) {

$post .= "";

$flag = 1;

}

$post.= $key."="; $post.= urlencode($value);

$flag = 1;

}

$length = strlen($post);

//创建socket连接

$fp = fsockopen("localhost",81,$errno,$errstr,10) or exit($errstr."--->".$errno);

//构造post请求的头

$header = "POST /flandy/getpost.php HTTP/1.1\r\n";

$header .= "Host:127.0.0.1\r\n";

$header .= "Referer:/flandy/post.php\r\n";

$header .= "Content-Type: application/x-www-form-urlencoded\r\n";

$header .= "Content-Length: ".$length."\r\n";

$header .= "Connection: Close\r\n\r\n";

//添加post的字符串

$header .= $post."\r\n";

//发送post的数据

fputs($fp,$header);

$inheader = 1;

while (!feof($fp)) {

$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据

if ($inheader ($line == "\n" || $line == "\r\n")) {

$inheader = 0;

}

if ($inheader == 0) {

echo $line;

}

}

fclose($fp);

?>

getpost.php的内容如下

<?php

echo "this is the data posted";

echo "<pre>";

print_r($_REQUEST);

echo "</pre>";

?>

结果输出:

this is the data posted

Array

(

[var1] => abc

[var2] => how are you , my friend??

)

以上代码在本机81端口下已经通过测试。

方法二:

使用PHP的curl扩展或HttpClient.class.php类,这两个非常类似,下面简单的列出curl的实现代码。

两个文件post2.php和getpost2.php

post2.php的内容如下:

<?php

$psecode = ’NDE005’;

$website = ’’;

$amt = 1;

$pwd = 123456;

$ch = curl_init();

$curl_url = "" . $website .

"pwd=" . $pwd . "action=checkpseid=" . $psecode .

"amt=" . $amt;

curl_setopt($ch, CURLOPT_URL, $curl_url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量

$curl_result = curl_exec($ch);

$result = explode(',', $curl_result);

curl_close($ch);

print_r($result);

?>

getpost2.php的内容如下:

<?php

echo "returndata<br>";

echo "<pre>";

print_r($_REQUEST);

echo "</pre>";

?>

结果输出:

Array ( [0] => returndataArray

(

[web] => ’wwwbaiducom’

[pwd] => 123456

[action] => check

[pseid] => ’NDE005’

[amt] => 1

)

)

php能自己POST到自己吗

当然可以post给自己啦。

form表单属性不全 <form method="post" action=""></form>

接受为$_POST

还可以get方式

<form method="get" action=""></form>

数组接受为$_GET

PHP。POST请求的问题

最简单的话就是使用session保存,其次可以把数据存储在数据库里,或者文件里,然后在register.php里查询。

原生session使用方法

session_start();

//赋值

$_SESSION["Session名称"]=变量或字符串信息;

//使用

$_SESSION["Session名称"];

问下php中提交请求的问题!!

你是想在index.php中(list.php)提交数据,然后直接在index.php(number.php)中显示吗?如果是这样的话,可以用ajax,或者是像用户登录后在首页显示某某欢迎你这样的。好像用的是cookie吧。

php网络请求方式的两种常用类型

POST方式,GET方式。PHP是一种用来制作动态网页的服务器端脚本语言。你通过PHP和HTML创建页面。当访问者打开网页时,服务器端便会处理PHP指令,然后把其处理结果送到访问者的浏览器上面,就好像ASP或者是ColdFusion一样。

关于php请求自己的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php请求自己 php处理请求的流程的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did208110
更新时间:2023-05-03   阅读:23次

上一篇: phpurl转移 php接口转发

下一篇:php之道是什么原因 php指什么

最新资料更新

  • 1.php是否为post的简单介绍
  • 2.php短信被刷 php防止短信被刷
  • 3.php获取post值 php如何获取url参数
  • 4.php引用vendor php 引用
  • 5.php文本转字节 php字符转换成数字
  • 6.免费版仓库管理系统php 仓库管理系统php源码
  • 7.phpoa推荐 php推荐书籍
  • 8.包含catflag.php的词条
  • 9.php查询模块 php函数查询
  • 10.php仿应用商店 php android 应用
  • 11.php调用裁剪插件 phpcrawl
  • 12.仿win桌面php源码 仿windows桌面
  • 13.php生成vcard php生成验证码
  • 14.php批量取中间 php批量删除数据
  • 15.php求数组的交集 php数组处理函数
  • 16.phpurl链接解析 php解析url
  • 17.php版本怎么更新 php版本升级
  • 18.php的if语句 php的if语句运用
  • 19.ubuntuphp启动 ubuntu开机启动python
  • 20.PHP网站防止挂马 php防止直接访问

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]