php脚本问题,请求的内容似乎是脚本大神们帮帮我

PHP实现取得HTTP请求的原文
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了PHP实现取得HTTP请求的原文,需要的朋友可以参考下
本文实例讲述了PHP实现取得HTTP请求的原文的方法,具体步骤如下:
1. 取得请求行:Method、URI、协议
可以从超级变量$_SERVER中获得,三个变量的值如下:
$_SERVER['REQUEST_METHOD'].' '.$_SERVER['REQUEST_URI'].' '.$_SERVER['SERVER_PROTOCOL']."\r\n";
2. 取得所有Header
PHP有个内置函数getallheader(),是apache_request_headers()函数的一个别名,可以将HTTP请求的所有Header以数组形式返回。但这个函数只能工作在Apache下,如果换了Nginx或者命令行,会直接报函数不存在的错误。
比较通用的方法是,从超级变量$_SERVER中提取出来,有关Header的键值都是“HTTP_”开头的,可以根据此特点取得所有的Header。
具体代码如下:
function get_all_headers() {
$headers = array();
foreach($_SERVER as $key =& $value) {
if(substr($key, 0, 5) === 'HTTP_') {
$key = substr($key, 5);
$key = strtolower($key);
$key = str_replace('_', ' ', $key);
$key = ucwords($key);
$key = str_replace(' ', '-', $key);
$headers[$key] = $
3. 取得Body
官方提供了一种获取请求Body的方法,即:
file_get_contents('php://input')
4. 最终完整代码如下:
* 获取HTTP请求原文
* @return string
function get_http_raw() {
$raw = '';
// (1) 请求行
$raw .= $_SERVER['REQUEST_METHOD'].' '.$_SERVER['REQUEST_URI'].' '.$_SERVER['SERVER_PROTOCOL']."\r\n";
// (2) 请求Headers
foreach($_SERVER as $key =& $value) {
if(substr($key, 0, 5) === 'HTTP_') {
$key = substr($key, 5);
$key = str_replace('_', '-', $key);
$raw .= $key.': '.$value."\r\n";
// (3) 空行
$raw .= "\r\n";
// (4) 请求Body
$raw .= file_get_contents('php://input');
感兴趣的读者可以调试一下本文所述实例,以加深理解。相信对大家的PHP程序设计有一定的帮助作用。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查看: 572|回复: 12
我的网站出现这个了,帮帮我
回复本帖可获得 1 枚金币奖励! 每人限 1 次(中奖概率 10%)
本帖最后由 days1991 于
20:42 编辑
Fatal error: Allowed memory size of
bytes exhausted (tried to allocate
bytes) in /home3/foroneei/public_html/source/class/class_image.php on line 255
这是网址如上面,有时候会出现上面的东西,一刷新就好了,然后基本就没了。求教到底是怎么回事,我是搬到另一个主机,开始没这个问题,我修改了一下通信。然后不知道什么时候就出现这种情况。
我经过DZ各位大牛的指导,我已经做好了,请大家帮忙测试下各个页面是否还存在别的问题&&
真的很感谢。 测试过的,帮忙下面,发帖写个:无错
求助,真的很纳闷,好像是只出现一次,基本就不会出现了
空间缓存问题
ghz0433 发表于
空间缓存问题
帮帮忙。你知道怎么做吗,是空间的问题吗
断断续续的,功能上目前没发现什么影响,出现问题,只要刷新一下就OK了。
这个主要是你哪个页面的图片太多了. 这个可以通过修改php.ini文件. 你如果是主机的话就只能减少图片了. 一般空间商不会给你改.
修改php.ini
memory_limit =&&这个调大点如 128m或更大
北北″ 发表于
这个主要是你哪个页面的图片太多了. 这个可以通过修改php.ini文件. 你如果是主机的话就只能减少图片了. 一般 ...
我的空间是买的国外的,而且各方面评价都非常好 HostMonster的主机,他对DZ的支持应该是可以的,主机商会限制做图片站?
你的说法感觉好像不太对,是因为图片过多的原因?
days1991 发表于
我的空间是买的国外的,而且各方面评价都非常好 HostMonster的主机,他对DZ的支持应该是可以的,主机商会 ...
如果你感觉不对我也没办法了.
days1991 发表于
我的空间是买的国外的,而且各方面评价都非常好 HostMonster的主机,他对DZ的支持应该是可以的,主机商会 ...
如7楼说. 你如果可以说通空间商把那个调大. 肯定就好了
Powered byJquery+Ajax+PHP请大神给写个实例,最好带上注释,发送请求,和如何相应。Jquery+Ajax+PHP请大神给写个实例,最好带上注释-知识宝库
你可能对下面的信息感兴趣主题 : 齐博CMS:好心人们PHP高手们帮帮帮我吧,实在走投无路了
级别: 齐博新生
威望: 2 点
积分: 153 个
精华风格度: 0 点
在线时间: 0 小时
齐博CMS:好心人们PHP高手们帮帮帮我吧,实在走投无路了
各位高手们好,求哪位一定要帮帮我。& & & 说来惭愧,我是大四的学生,学的是电子专业,然后毕业设计老师让我做PHP+MySQL的网站,功能是一个中国职业教育信息的查询系统。然后苦心钻研了一个月的PHP+MySQL,是我笨吧可能,至今还是一筹莫展。我只会做静态网页,动态做不来,试了DIY-PAGE 3.0版,结果也是一翘不通做不来。老师的意思是让我有个地图检索功能,先是要有个中国地图,然后点地图上的上海,就跳出上海的地图,然后点上海的区县就能有各区县的职业技术教育学校的信息。天啊,这好难啊 & &
我只有首页做了个大概,这种功能怎么实现啊?实在编不来PHP 代码啊& & 首页还有最惭愧的是,我看了很多书,都不知道注册登录功能怎么实现,就是点注册网页中间出现个注册界面,然后其它地方还是首页的样子。& &
哪位高手能指导指导我啊,我的QQ,定当感激不尽,以后高手想来上海旅游,我包吃喝住加 陪游&
谢谢啦,请不要删我,我实在是不会做,诚心各高手帮忙
个性签名:该找工作了!
3星级VIP用户
级别: 齐博总版
发帖: 3879
威望: 3583 点
积分: 4017 个
精华风格度: 1 点
在线时间: 441 小时
帮顶一下。学生不易
***************************************** *                 ******************************************
级别: 齐博新生
威望: 2 点
积分: 153 个
精华风格度: 0 点
在线时间: 0 小时
好心人顶下,不如也指点下,学生是不易啊
级别: 齐博新生
威望: 8 点
积分: 241 个
精华风格度: 0 点
在线时间: 8 小时
级别: 齐博初中生
威望: 113 点
积分: 569 个
精华风格度: 0 点
在线时间: 15 小时
个性签名:业务合作
级别: 齐博本科生
发帖: 2636
威望: 2028 点
积分: 189037 个
精华风格度: 0 点
在线时间: 298 小时
***************************************** *                 ******************************************
级别: 齐博新生
威望: 12 点
积分: 165 个
精华风格度: 0 点
在线时间: 0 小时
3星级VIP用户
级别: 齐博版主
发帖: 2293
威望: 2523 点
积分: 2164 个
精华风格度: 0 点
在线时间: 650 小时
是呀,学生不易。不过现在的教育是该好好反省一下了
***************************************** *                 ******************************************
级别: 齐博幼儿
威望: 36 点
积分: 21 个
精华风格度: 0 点
在线时间: 6 小时
你的网页打不开阿
***************************************** *                 ******************************************
>> 齐博门户系统专区
&|- 门户开发动态
&|- 门户BUG反馈
&|- 门户功能建议
>> 齐博产品和服务
&|- 官方动态
&|- 程序下载
&|- 商业授权专区
&|- 功能建议
&|- BUG反馈
&|- 新手教程
教程归纳区
&|- 精选风格
&|- 站务咨询
&|- 团队交流
>> 齐博交流和讨论
&|- CMS整站系统
&|- 分类信息系统
&|- B2B电子商务系统
&|- 风格模板
&|- 模块插件
&|- 采集参数
>> 齐博业余和爱好
&|- 建站交流
&|- 无话不说
&|- 站长交易
>> 合作伙伴与VIP会员
&|- 协众OA
&|- VIP会员专区
>> 齐博站务和管理
打造最专业的门户系统建站程序通常在php页面中直接echo js的脚本是可以解析执行的。例如echo '&script type = text/javascript&alert(&hello!&);&/script&';
web页面会直接弹出警示窗。但是web页面通过Ajax向php发送http数据请求,返回的有关script语句出于安全原因却不可以直接执行。如果要在网页上执行就要做一些处理。下面就来说一下这个过程。
前端html代码
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&
&html xmlns=&http://www.w3.org/1999/xhtml& lang=&ro&&
&meta http-equiv=&content-type& content=&text/ charset=utf-8& /&
&title&Ajax tutorial&/title&
&script type=&text/javascript& src=&script.js&&&/script&
&div id=&context&&
&script type=&text/javascript&&
var tmp = '. date('Y-m-d H:i:s',time()).';
document.write(&Server Timestamp: &+ tmp);
&h4 style=&cursor:& onclick=&ajaxrequest('script.php', 'context')&&&u&Test&/u&&/h4&
Ajax部分:
// 根据浏览器创建 XMLHttpRequest 对象。
function get_XmlHttp() {
var xmlHttp =
if(window.XMLHttpRequest) {
Forefox, IE7+, Opera, Safari, ...
xmlHttp = new XMLHttpRequest();
else if(window.ActiveXObject) { // for Internet Explorer 5 or 6
xmlHttp = new ActiveXObject(&Microsoft.XMLHTTP&);
return xmlH
// 向php文件发送POST请求,显示接收到的结果
function ajaxrequest(php_file, tagID) {
var request =
get_XmlHttp();
request.open(&POST&, php_file, true);
a header to tell the PHP script to recognize the data as is sent via POST
request.setRequestHeader(&Content-type&, &application/x-www-form-urlencoded&);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var resp = request.responseT
document.getElementById(tagID).innerHTML =
//document.write(resp);
parseScript(resp);
// this function create an Array that contains the JS code of every &script& tag in parameter
// then apply the eval() to execute the code in every script collected
function parseScript(strcode) {
var scripts = new Array();
while(strcode.indexOf(&&script&) & -1 || strcode.indexOf(&&/script&) & -1) {
var s = strcode.indexOf(&&script&);
var s_e = strcode.indexOf(&&&, s);
var e = strcode.indexOf(&&/script&, s);
var e_e = strcode.indexOf(&&&, e);
// Add to scripts array
scripts.push(strcode.substring(s_e+1, e));
// Strip from strcode
strcode = strcode.substring(0, s) + strcode.substring(e_e+1);
// Loop through every script collected and eval it
for(var i=0; i&scripts. i++) {
eval(scripts[i]);
catch(ex) {
&后端php文件
echo '&b&Text added with Ajax&/b&, &i&received from PHP.&/i&';
//返回第一个js代码, 显示当前时间戳信息
echo '&script type=&text/javascript&&var tmp = '. time().';alert(&Server Timestamp: &+ tmp);&/script&';
//返回第二个js代码,输出提示信息
echo '&script type=&text/javascript&&alert(&The alert from the second JS script from PHP&);&/script&';
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:427975次
积分:5717
积分:5717
排名:第3208名
原创:134篇
转载:10篇
评论:18条
文章:16篇
阅读:80201
文章:18篇
阅读:85185
(4)(1)(1)(1)(2)(5)(5)(1)(7)(18)(31)(15)(45)(5)(3)(2)

我要回帖

更多关于 jmeter java请求脚本 的文章

 

随机推荐