PHP面试必备:预定义变量、运算符、HTTP状态码与数组函数解析

需积分: 8 9 下载量 127 浏览量 更新于2024-09-26 收藏 70KB DOC 举报
"PHP面试题及常见知识点解析" 在PHP中,有一些重要的预定义变量用于获取与当前脚本执行环境相关的各种信息。例如,`$_SERVER`数组包含了多种服务器和脚本环境变量。其中,`$_SERVER['PHP_SELF']`记录了当前脚本的名称(不包括路径和查询字符串),它常用于表单提交后的回显或自定义页面标题。`$_SERVER['HTTP_REFERER']`则记录了链接到当前页面的前一页面的URL地址,但需要注意的是,这个变量并不是总是可靠的,因为某些浏览器或隐私设置可能会阻止其正确填充。 另外,`$_SERVER`数组中的其他变量也相当重要,比如: - `$_SERVER['SCRIPT_FILENAME']`提供了前执行脚本的绝对路径名。 - `$_SERVER['REMOTE_ADDR']`用于获取正在浏览当前页面用户的IP地址。 - `$_SERVER['QUERY_STRING']`则包含了URL中第一个问号后查询(query)的字符串。 - `$_SERVER['DOCUMENT_ROOT']`指示当前运行脚本所在的文档根目录。 在PHP的算术运算中,模运算符 `%` 可用于计算两个数值的余数。例如,`8 % (-2)` 的结果是 `0`,因为8除以-2的余数为0。而当被除数为负数时,模运算的结果也会是负数,如 `(-8) % 3` 输出 `-2`。但当除数为负数,被除数为正数时,如 `8 % (-3)`,结果为正数,即 `2`。 在HTTP协议中,状态码401意味着未经授权,通常发生在访问受保护的资源时,用户没有提供有效的身份验证凭证。如果要模拟“找不到文件”的错误,可以使用PHP的`header`函数,如 `header("HTTP/1.0 404 Not Found")` 来设置响应状态码为404。 PHP的数组函数`arsort()`用于对关联数组进行逆向排序,并保持原有的键值关联。这在处理需要按值降序排列的键值对数组时非常有用。而`error_reporting(2047)`的用途是开启所有的错误和警告报告,这个数字2047代表了所有可能的错误级别,便于在开发阶段调试代码。 在正则表达式方面,过滤网页上的JS或VBS脚本通常是为了防止跨站脚本攻击(XSS)。一个简单的正则表达式示例可以是: ```regex /<script\b[^>]*>(.*?)<\/script>/is ``` 这个正则表达式将匹配HTML中的`<script>`标签及其内容,帮助你在数据处理或输出之前移除潜在的恶意脚本。 以上就是关于PHP面试题的一些关键知识点,包括预定义变量的使用、算术运算的理解、HTTP状态码的意义、数组函数的应用以及正则表达式的运用。在实际面试中,理解并掌握这些内容对于成为一名合格的PHP开发者至关重要。