PHP Documentation
撰写时间:2023-07-05
修订时间:2024-02-16
Form
设置HTML表单 datetime-local的value值
下面的情况在Safari浏览器中遇到。
第一种情况
在网页中可以正常显示,但却显示为:
如果要带秒数也可以,但必须为0.
第二种情况
在网页中可以正常显示,但却显示为:
但如果改为:
也就是后面加上了非零的秒值,则可显示,但提交时却显示请输入有效值
的错误提示,并导致无法提交。
第三种情况
在网页中显示时各组件是灰色的,显示为:
可以提交,但参数实际上并未传递。而如果通过界面进行选择设置,各组件变为正常颜色,就可正常提交。
PHP设置本地时区值
首先,由于本地或远程服务器的PHP的默认时区可能为UTC
,因此在处理与时间相关的事宜时,必须先设置时区。
然后设置input
:
Submission
GET 还是 POST
GET会在浏览器的地址栏中显示参数。POST则不会。
GET的参数有字符限制,且会暴露在大众之下。它的好处是,可以为特定的参数在浏览器中予以收藏。
POST的好处是机密,可一次性地处理众多参数。默认情况下应优先使用POST,除非它有收藏的必要。
Validation
Escaping Special Chars
Additional Consideration
Required and Optional Inputs
Validating Emails
Validating Website URL
Redirect after Validation
基本语法
PHP需要编译的内容
只要在<?php
及?>
之范围内的内容,都是PHP需要编译的内容。
PHP支持一种称为short echo tag的方式<?= ?>
:
其效果与上面的输出一致。
第3种方式是<? ?>
:
但这种方式,需要在php.ini配置文件中激活short_open_tag
选项。因此这种方式并不常用。
如果某个PHP文件被用于include
或require
,并且该文件只有PHP语句,则最好不用添加结尾标签。这样做可以避免不必要的空白符添加至文件末尾,且你还可以在之后添加headers进response中。
条件语句
普通的条件语句如下:
PHP支持下列比较简洁的混用语句:
This will show if the expression is true.
<?php else: ?>Otherwise this will show.
<?php endif; ?>因此,上面的条件语句可写成:
格式更加简洁、直观。
字符串
字符串拼接
第1种是在双引号的字符串中直接引用变量。
注意,单引号的字符串不会解析其中的变量。
第2种是使用句号.
来拼接字符串。
第3种是使用sprintf函数来构建字符串。
数组
字典式数组查找索引值
字典式数组是没有基于数字的索引值的。有时我们需要取得数组中特定元素的索引值,以便进行诸如加1或减1的运算。
array_keys或array_values函数可返回数组对象的键或值所组成的数组。而这两个数组都是基于数字为索引值的。
显示:
接着,使用特定键名称在此数组中查找索引值:
现在根据此索引值取得$idx_key_amp的前1个元素的键名:
最后,根据此键名,访问arry数组中的元素值。
有点绕且易出错。可以将上面这些步骤打包为一个函数:
服务器
查看服务器信息
这种方式只能在测试时使用,不能被外界访问。如果要查看远程服务器的信息,可临时新建一个文件调用此命令,查看后立即从远程服务器中删除。
在Console查看PHP变量值
在调试阶段,经常需要将PHP变量值在Console中输出。
PHP先生成JavaScript的语句,然后再传入PHP的变量值。
感悟
PHP发挥作用的领域是在服务器端,但我们有时可能却犯了一个低级错误:将需在客户端发生的事情交由PHP来完成。