商丘网站推广,自己建公司网站可以嘛,做红木家具推广哪个网站比较好,单页网站seo怎么做使用 PHP推荐查看本文HTML版本本节汇集了你在写 PHP 脚本时可能碰到的大多数普通错误。1. 我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢#xff1f;2. 我需要在所有的单引号()前加一个反斜线(\)#xff0c;使它们变成(\)#xf…使用 PHP推荐查看本文HTML版本本节汇集了你在写 PHP 脚本时可能碰到的大多数普通错误。1. 我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢2. 我需要在所有的单引号()前加一个反斜线(\)使它们变成(\)我如何能够通过正则表达式来实现我同样希望能够将()转换成(\)将(\)转换成(\\)。3. 我所有的()和()都被变成了(\)和(\)我如何才能去掉这些不必要的反斜线它们为什么及如何出现4. 当我这样做时输出显示的次序是错的 ?php function myfunc($argument){6. 我得到消息“Warning: Cannot send session cookie - headers already sent...”或者“Cannot add header information - headers already sent...”。7. 我需要直接访问请求报头中的信息怎么能办到8. 当我用 IIS 进行 HTTP 认证时得到“No Input file specified”消息。9. 我的 PHP 脚本在 IE 和 Lynx 下能工作但是在 Netscape 中有的输出丢失了。当我用“查看源文件”时可以在 IE 中看到内容但是 Netscape 中不能。10. 我怎样混合使用 XML 和 PHP它不认我的 ?xml 标记11. 怎样用 FrontPage 或者其它非要把我的代码移来移去的 HTML 编辑器来编辑 PHP12. 哪里可以找到所有可用的 PHP 预定义变量的完整列表13. 我试着在用户自定义函数中访问一个标准的 CGI 变量(例如 $DOCUMENT_ROOT 或 $HTTP_REFERER)但是找不到哪里出了错1. 我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢PHP 提供很多“预定义变量”例如超级全局变量 $_POST。您可以遍历 $_POST 变量因为它是一个和所有通过 POST 方法传递数据相联系的数组。例如我们可以用 foreach 简单的遍历它检查 empty() 值以及将它们输出。 ?php $empty $post array();foreach ($_POST as $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 等等。更多信息请阅读手册中的 superglobals2. 我需要在所有的单引号()前加一个反斜线(\)使它们变成(\)我如何能够通过正则表达式来实现我同样希望能够将()转换成(\)将(\)转换成(\\)。函数 addslashes() 能够实现这种操作。请参阅函数 mysql_escape_string()。另外您还可以用函数 stripslashes() 来去掉反斜线。设置选项注意magic_quotes_gpc: PHP 的设置选项 magic_quotes_gpc 的默认值为 on。这相当于自动对所有的 GET、POST、COOKIE 数据使用 addslashes() 函数。您可以使用 stripslashes() 函数来去掉它们。3. 我所有的()和()都被变成了(\)和(\)我如何才能去掉这些不必要的反斜线它们为什么及如何出现PHP 函数 stripslashes() 能够从字符串中去掉所有的反斜线。这些反斜线出现最有可能的原因是 PHP 设置项 magic_quotes_gpc 被开启。设置选项注意magic_quotes_gpc: PHP 的设置选项 magic_quotes_gpc 的默认值为 on。这相当于自动对所有的 GET、POST、COOKIE 数据使用 addslashes() 函数。您可以使用 stripslashes() 函数来去掉它们。4. 当我这样做时输出显示的次序是错的 ?php function myfunc($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 ($headers as $name $content) {echo headers[$name] $content\n;}?请参阅函数 apache_lookup_uri()、apache_response_headers() 和 fsockopen()。8. 当我用 IIS 进行 HTTP 认证时得到“No Input file specified”消息。IIS 的安全模型这里有毛病。这是所有 IIS 下运行的 CGI 程序所共有的问题。一个解决办法是建立一个纯 HTML 文件(不经过 PHP 解析)作为要进入认证目录的登录页面然后用 META 标记来重定向到 PHP 页面或者用一个连接到 PHP 页面。然后 PHP 就可以正确识别认证信息了。如果是用 ISAPI 模块那没有这个问题。其它 NT 下的 web 服务器不受此影响。更多信息见http://support.microsoft.com/support/kb/articles/q160/4/22.asp及“HTTP 认证”的有关章节。9. 我的 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 都会。10. 我怎样混合使用 XML 和 PHP它不认我的 ?xml 标记要能够在 PHP 代码中直接嵌入 ?xml 您需要将将 PHP 设置项 short_open_tags 设置为 0 以关闭短标记格式。您无法通过函数 ini_set() 来更改这项设置。不管 short_open_tags 是开或者关您都可以用类似于 ?php echo ?xml; ? 的方法达到目的。该项设置的默认值为开。11. 怎样用 FrontPage 或者其它非要把我的代码移来移去的 HTML 编辑器来编辑 PHP最简单的方法是让 PHP 代码也能使用 ASP 标记。这可以让你用 ASP 风格的 代码定界符。一些流行的 HTML 编辑器在处理此格式上更加智能化一些(目前如此)。要使用 ASP 风格的标记你需要在 php.ini 中打开 asp_tags或者用相应的 Apache 配置选项。12. 哪里可以找到所有可用的 PHP 预定义变量的完整列表请阅读手册“预定义变量”的有关章节该部分的文档已经包含了一部分可以用于你的脚本的预定义变量的列表。可用变量的完整列表(及更多信息)可以通过调用 phpinfo() 函数来查阅。请务必阅读手册“PHP 外部变量”一节这部分文档描述了外部变量的概要如从来自 HTML 表单、Cookie 和 URL 的变量。13. 我试着在用户自定义函数中访问一个标准的 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