当前位置: 首页 > news >正文

inurl faq.php,使用 PHP

1.

我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢?

PHP 提供很多“预定义变量”,例如超全局变量

$_POST。可以遍历 $_POST

变量,因为它是一个和所有通过 POST

方法传递数据相联系的数组。例如,可以用

foreach

简单地遍历它,检查 empty() 值,以及将它们输出。<?php

$empty=$post= array();

foreach ($_POSTas$varname=>$varvalue) {

if (empty($varvalue)) {$empty[$varname] =$varvalue;

} else {$post[$varname] =$varvalue;

}

}

print"

";

if (empty($empty)) {

print"None of the POSTed values are empty, posted:\n";var_dump($post);

} else {

print"We have ".count($empty) ." empty values\n";

print"Posted:\n";var_dump($post);

print"Empty:\n";var_dump($empty);

exit;

}?>

Superglobals 可用性说明:自 PHP 4.1.0 起,可以使用超全局数组变量例如

$_GET,$_POST

和 $_SERVER 等等。更多信息请阅读手册中的 superglobals。

2.

我需要在所有的单引号(')前加一个反斜线(\),使它们变成(\'),我如何能够通过正则表达式来实现?我同样希望能够将(")转换成(\"),将(\)转换成(\\)。

magic_quotes_gpc 设置选项说明:PHP 的设置选项 magic_quotes_gpc 的默认值为

on。这相当于自动对所有的

GET、POST、COOKIE 数据使用了 addslashes() 函数。可以用

stripslashes() 函数来去掉它们。

3.

我所有的(")和(')都被变成了(\")和(\'),我如何才能去掉这些不必要的反斜线?它们为什么及如何出现?

PHP 函数 stripslashes() 能够从

string 中去掉所有的反斜线。这些反斜线出现最有可能的原因是

PHP 设置项 magic_quotes_gpc 被开启。

magic_quotes_gpc 设置选项说明:PHP 的设置选项 magic_quotes_gpc 的默认值为

on。这相当于自动对所有的

GET、POST、COOKIE 数据使用了 addslashes() 函数。可以用

stripslashes() 函数来去掉它们。

4.

当我这样做时,输出显示的次序是错的:<?phpfunctionmyfunc ($argument)

{

echo$argument+10;

}$variable=10;

echo"myfunc($variable) = ".myfunc($variable);?>

这是怎么回事?

要在一个表达式中(例如在上面的例子中和其它字符串连接)使用函数的结果,需要

return() 这个值,而不是 echo() 它。

5.

下面代码怎么没有分成两行显示?


 

在 PHP 中,一段代码的结束标记要么是“?>”要么是“?>\n”(\n 表示换行)。因此在上面的例子中,输出的句子将显示在同一行中,因为

PHP 忽略了代码结束标记后面的换行。这意味着如果要输出一个换行符,需要在每段

PHP 代码的结束标记后面多加一个换行。

PHP 为什么这么做呢?因为在格式化正常的 HTML

时,这样通常会更容易。假如输出了换行而你不需要这个换行时,就不得不用一个非常长的行来达到这样的效果,或者让产生的

HTML 页面的源文件的格式很难读。

6.

我得到消息“Warning: Cannot send session cookie - headers already

sent...”或者“Cannot add header information - headers already sent...”。

函数 header(),setcookie() 和

session

函数需要在输出流中添加头信息。但是头信息只能在其它任何输出内容之前发送。在使用这些函数前不能有任何(如

HTML)的输出。函数 headers_sent()

能够检查脚本是否已经发送了头信息。请参阅输出控制函数。

7.

我需要直接访问请求报头中的信息,怎么能办到?

如果以 Apache 的模块方式运行 PHP,那么函数 getallheaders()

可以做这件事。因此下面的代码可以显示所有的请求报头:<?php

$headers=getallheaders();

foreach ($headersas$name=>$content) {

echo"headers[$name]= $content
\n";

}?>

8.

当我用 IIS 进行 HTTP 认证时得到“No Input file specified”消息。

IIS 的安全模型这里有毛病。这是所有 IIS 下运行的 CGI 程序所共有的问题。一个解决办法是建立一个纯

HTML 文件(不经过 PHP 解析)作为要进入认证目录的登录页面,然后用 META 标记来重定向到

PHP 页面,或者用一个连接到 PHP 页面。然后 PHP 就可以正确识别认证信息了。如果是用

ISAPI 模块,那没有这个问题。其它 NT 下的 web

服务器不受此影响。更多信息见 http://support.microsoft.com/kb/q160422/及

HTTP 认证一章。

9.

Windows:不能访问另一台电脑上用 IIS 共享的文件。

必须要做些修改。打开 Internet 信息服务,找到你的

PHP 文件并打开属性页,选择文件安全性标签,点击匿名访问和身份验证控制的“编辑”按钮。

解决此问题有两个方法,一是不要选中匿名访问并且选中集成

Windows 身份验证,二是选中匿名访问并编辑匿名访问使用的帐户,改成一个有权限的。

10.

我的 PHP 脚本在 IE 和 Lynx 下能工作,但是在 Netscape 中有的输出丢失了。当我用“查看源文件”时可以在

IE 中看到内容,但是 Netscape 中不能。

Netscape 在关于 HTML 标记(例如 table)上比 IE 更严格。用一个 HTML 验证器,例如

validator.w3.org 来验证你的 HTML

输出可能会有帮助。例如漏了 可能会导致这样的结果。

同样,IE 和 Lynx 都忽略了 HTML 流中的任何 NULs(\0),Netscape

就不。最好的检查方法是编译 PHP 的命令行模式版本(也称为

CGI 版本)并从命令行运行你的脚本。在 *nix 中,用管道传递到 od -c 并查看任何

\0 字符。如果在 Windows 下你需要能够查看二进制文件格式的编辑器或程序。当

Netscape 碰到 NUL 时就不会输出之后该行的任何内容而 IE 和 Lynx 都会。

11.

我怎样混合使用 XML 和 PHP?它不认我的 <?xml 标记!

要能够在 PHP 代码中直接嵌入 <?xml ,需要将 PHP 设置项

short_open_tags 设置为

0 以关闭短标记格式。无法通过函数

ini_set() 来更改这项设置。不管

short_open_tags

是开或者关,都可以用类似于 <?php echo '<?xml'; ?>

的方法达到目的。该项设置的默认值为开。

12.

怎样用 FrontPage 或者其它非要把我的代码移来移去的 HTML 编辑器来编辑 PHP?

最简单的方法是让 PHP 代码也能使用 ASP 标记。这可以让你用 ASP 风格的 代码定界符。一些流行的

HTML 编辑器在处理此格式上更加智能化一些(目前如此)。要使用 ASP 风格的标记,需要在 php.ini 中打开

asp_tags,或者用相应的 Apache 配置选项。

13.

哪里可以找到所有可用的 PHP 预定义变量的完整列表?

请阅读手册中的预定义变量一章,该部分的文档已经包含了一部分可以用于你的脚本的预定义变量的列表。可用变量的完整列表(及更多信息)可以通过调用

phpinfo() 函数来查阅。请务必阅读手册中来自 PHP

之外的变量一节,这部分文档阐述了外部变量的概念,例如来自

HTML 表单、Cookie 和 URL 的变量。

register_globals 重要说明:自 PHP 4.2.0 起,PHP 中的选项

register_globals 的默认值被设为

off。PHP 社区鼓励大家不要依赖于这个选项,用其它方法替代,例如superglobals。

15.

我试着在用户自定义函数中访问一个标准的 CGI 变量(例如 $DOCUMENT_ROOT 或 $HTTP_REFERER),但是找不到,哪里出了错?

首先非常重要的一点是 PHP 设置项 register_globals 同样会对服务器端和环境变量产生影响。当 register_globals = off (从 PHP 4.2.0 开始其默认值为 off),变量 $DOCUMENT_ROOT 将不会存在,而只有 $_SERVER['DOCUMENT_ROOT']。如果 register_globals = on 则变量 $DOCUMENT_ROOT 和 $GLOBALS['DOCUMENT_ROOT'] 将同时存在。

如果确认 register_globals = on 但不知道为什么

$DOCUMENT_ROOT

在函数内部不可用,这是因为它和其它的变量一样需要在函数中执行

global $DOCUMENT_ROOT。请参阅手册中的变量范围一节。建议在

register_globals = off 的情况下进行编码。

Superglobals 可用性说明:自 PHP 4.1.0 起,可以使用超全局数组变量例如

$_GET,$_POST

和 $_SERVER 等等。更多信息请阅读手册中的 superglobals。

16.

有些 PHP 选项可以接受缩写的字节值,与仅能接受 integer

字节值相反。都有哪些缩写字节值?可以将其用于 php.ini 之外吗?

可用的选择有 K(对应 Kilobytes),M(对应 Megabytes)和

G(对应 Gigabytes;自 PHP 5.1.0

起可用),区分大小写。其余的都认为是字节。1M

等于一个 Megabyte,即 1048576 字节。1K

等于一个 Kilobyte,即 1024 字节。不能在 php.ini

之外使用这些符号,最好用整数的 integer 字节值。参见

ini_get() 文档中的转换示例。

相关文章:

  • r语言中六种方法查看R函数源代码—— 鼠标放在函数上,按下F2
  • php mysqli_affected_rows(),Mysqli_num_rows与PHP中mysqli_affected_rows的区别
  • R语言字符串替换:gsub()
  • matlab实现数据压缩,【Matlab】Huffman编码如何实现数据压缩
  • getcurrenttime java,getcurrenttime
  • java nio netty 教程,4. 彤哥说netty系列之Java NIO实现群聊(自己跟自己聊上瘾了),netty实现...
  • java ucs 2,【字符编码系列】JavaScript使用的编码-UCS-2
  • R语言-文件管理系统操作 list.files dir.file dir
  • metaweblog php,.NET_在Asp.Net中创建MetaWeblog API, 概念   metaweblog是基于XML - phpStudy...
  • php android okgo上传图片,Android OkHttp的封装类OkGo的用法
  • find与xargs连用复制移动位置
  • linux命令行模式kvm,Linux虚拟机-使用命令行管理虚拟机---KVM一些常用的命令
  • 如何编译源代码
  • linux中间隔10ping一次脚本,linux脚本每隔几分钟ping指定ip如不通向指定手机发送短信...
  • 空间转录组学(Spatial Transcriptomics)
  • django开发-定时任务的使用
  • DOM的那些事
  • download使用浅析
  • Git同步原始仓库到Fork仓库中
  • Java基本数据类型之Number
  • Java教程_软件开发基础
  • java小心机(3)| 浅析finalize()
  • Leetcode 27 Remove Element
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux CTF 逆向入门
  • MaxCompute访问TableStore(OTS) 数据
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Swift 中的尾递归和蹦床
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从零开始在ubuntu上搭建node开发环境
  • 多线程事务回滚
  • 前嗅ForeSpider采集配置界面介绍
  • 突破自己的技术思维
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 【云吞铺子】性能抖动剖析(二)
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​学习一下,什么是预包装食品?​
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #图像处理
  • $L^p$ 调和函数恒为零
  • (2)(2.10) LTM telemetry
  • (42)STM32——LCD显示屏实验笔记
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (六)Hibernate的二级缓存
  • (三)elasticsearch 源码之启动流程分析
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转载)(官方)UE4--图像编程----着色器开发
  • .gitignore文件—git忽略文件
  • .Net 4.0并行库实用性演练