PHP 是一种基于脚本的 web 语言,开发者可以动态的创建网页。
Hypertext Preprocessor(超文本预处理器)。
PHP 语法类似于 Perl 和 C。
推荐使用版本 7。
在命令行界面(CLI),指定要执行的脚本的文件名,如下所示:
php script.php
将 PHP CLI 程序与 - a 选项一起使用,如下所示:
php -a
开始和结束 PHP 脚本的两种最常见的方式是:
<?php [ --- PHP code---- ] ?> and <? [--- PHP code ---] ?>
将输出直接显示给浏览器,我们必须使用特殊标记 <?=and?>。
PHP 只支持单继承。PHP 的类使用关键字 extends 继承另一个类
final 是在 PHP5 版本引入的,它修饰的类不允许被继承,它修饰的方法不允许被重写。
在 PHP 中,我们可以使用运算符 == 来比较两个对象是否为同一个类的实例,并且拥有相同的属性和属性值。
还可以是使用运算符 === 来比较两个对象是否引用了同一类的同一实例。
可以通过 PHP 脚本生成 HTML,还可以将信息从 HTML 传递到 PHP。
通过表单或 URL 传递值,则需要使用 htmlspecialchars() 和 urlencode() 对它们进行编码和解码。
PHP 和 Javascript 无法直接进行交互,因为 PHP 是一种服务器端语言,而 Javascript 是一种浏览器语言。但是,我们可以交换变量,因为 PHP 可以生成将由浏览器执行的 Javascript 代码,并且可以通过 URL 将特定的变量传递回 PHP。
需要 GD 库来执行处理图片功能。
imagetypes() 给出当前版本的 GD-PHP 支持的图像格式和类型。
获取图片大小 size:getimagesize ();获取图片宽度 width:imagesx ();获取图片高度 height:imagesy ()。
include() 将会产生一个警告,不影响后续程序的执行。require() 将会产生一个致命错误,后续程序停止执行。
require () 和 require_once () 执行同样的任务,除了第二个函数在执行前检查 PHP 脚本是否已经包含。
(与 include_once () 和 include () 相同)
可以使用以下两种方法:
<!--?php echo "Method 1"; print "Method 2"; ?-->
为了能够显示人类可读的结果,我们使用了 print_r () 。
在脚本开始处添加 set_time_limit (0) 设置为无限执行时间,以避免 PHP 错误 “超过最大执行时间”。也可以在 php.ini 文件中指定它。
这是一个 PHP 语法错误,表示 x 行的错误会停止解析和执行程序。
最常见和常用的方法是将数据转换为 Excel 支持的格式。例如,可以编写 .csv 文件,例如选择逗号作为字段之间的分隔符,然后使用 Excel 打开文件。
file_get_contents () 可读取文件并将其存储到字符串变量中。
为了连接到 MySQL 数据库,必须使用 mysql_connect () 函数:
<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
mysql_pconnect () 函数确保与数据库的持久连接,这意味着 PHP 脚本结束时连接不会关闭。
PHP7.0 及以上版本已不支持该函数。
可以使用 mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object or mysqli_fetch_row 函数处理。
mysqli_num_rows () 函数返回了结果集的行数。
mysqli_affected_rows () 返回受 SQL 查询影响的条目数。
mysqli_fetch_object () 函数收集第一个单个匹配记录,而 mysqli_fetch_array () 从表中收集所有匹配记录。
要访问通过 GET 方法发送的数据,我们使用 $ _GET 数组,如下所示:
www.url.com?var=value
$variable = $_GET["var"]; 现在将包含 'value'
要访问以这种方式发送的数据,请使用 $ _POST 数组。
想象一下,当用户单击「提交到帖子」表单时,表单上有一个名为「var」的表单字段,然后您可以像这样访问值:
$_POST["var"];
可以使用专用函数 is_numeric () 来检查它是否为数字。
可以使用专用函数 ctype_alnum 来检查它是否为字母数字字符。
如果我们要检查变量是否具有值,可以使用 empty () 函数。
unlink () 函数专用于文件系统处理。它用于删除文件。
unset () 函数专用于变量管理。它将使变量变为未定义。
addslashes 函数使我们能够在将数据存储到数据库之前对其进行转义。
使用 stripslash 函数,我们可以删除字符串中的转义字符。
我们必须在 PHP 的配置文件中启用魔术引号项。
函数 get_magic_quotes_gpc () 告诉我们魔术引号是否已打开。
strip_tags () 函数使我们能够从 HTML 标签中清除字符串。
静态变量仅在函数中首次定义,并且其值可以在函数调用期间进行如下修改:
<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction(); //1 testFunction(); //2 testFunction(); //3 ?-->
使用 global 关键字。
使用指令 ‘return $value;’ 。
最好使用本身支持几种哈希算法的 crypt () 或支持比 crypt () 更多变体的函数 hash (),而不是使用常见的哈希算法,如 MD5、SHA1 或 sha256,因为它们被认为是存在安全问题的。因此,使用这些算法的哈希密码可能会产生漏洞。
PHP-OpenSSL 扩展提供了几种加密操作,包括数字签名的生成和验证。
define () 指令允许我们按如下方式定义常量:
define ("ACONSTANT", 123);
为了能够通过引用传递变量,我们在变量前面使用了 & 符号,如下所示 $var1=&$var2
“13” 和 12 可以在 PHP 中进行比较,因为它将所有内容都强制转换为整数类型。
输出类型的名称必须在要强制转换的变量前的括号中指定,如下所示:
(int), (integer) - 强制转换为整型
(bool), (boolean) - 强制转换为布尔值
(float), (double), (real) - 强制转换为浮点型
(string) - 强制转换为字符串
(array) - 强制转换为数组
(object) - 强制转换为对象
当最初的 if 后面跟着:然后是没有大括号的代码块时。
它由三个表达式组成:一个条件和两个操作数,它们描述在指定条件为 true 或 false 时应执行的指令,如下所示:
Expression_1?Expression_2 : Expression_3;
函数 func_num_args () 用于提供传递给函数的参数数量
$$var2 包含值 10。
:: 用于访问不需要对象初始化的静态方法。
对象按值传递。
不,必须显式调用父构造函数,如下所示:
parent::constructor($value)
__sleep 返回所有需要保存的变量的数组,而__wakeup 检索它们。
1 - 结合以下两个变量:
$ variable1 ='你好';
$ variable2 ='世界';
$ variable3 = $ variable1.$ variable2;
要么
2- $variable3 = "$variable1$variable2";
$variable3 将包含 “你好 世界”。第一个代码比第二个代码快,特别是对于大型数据集。
会话是一个逻辑对象,使我们能够跨多个 PHP 页面保留临时数据。
** 65)如何在 PHP 中启动会话?**
使用 session_start() 函数可以激活会话。
** 66)如何传播会话 ID?**
您可以通过 Cookie 或 URL 参数传播会话 ID。
永久性 cookie 永久存储在浏览器计算机上的 cookie 文件中。默认情况下,cookies 是临时的,如果我们关闭浏览器,cookies 将被删除。
会话在 PHP 脚本完成执行时自动结束,但可以使用 session_write_close() 手动结束。
** 69)session_unregister() 和 session_unset() 有什么区别?**
session_unregister() 函数从当前会话中注销全局变量,而 session_unset() 函数则释放所有会话变量。
$GLOBALS 是一个关联数组,包括对当前在脚本的全局范围内定义的所有变量的引用。
$_SERVER 是一个包含 Web 服务器创建信息的数组,包括了路径,头部和脚本位置等。
$_FILES 是一个包含通过 HTTP POST 方式上传到当前脚本的项目的数组。
$ _FILES ['userfile'] ['name'] 表示客户端文件的原始名称,
$_FILES['userfile']['tmp_name'] 表示服务器上存储的文件的临时文件名。
$_FILES['userfile']['error'] 包括了与上传文件有关的错误代码。
可通过更改 php.ini 中的 upload_max_filesize 来更改要上传的文件的最大大小。
通过环境方式传递给当前脚本的变量的数组。
通过 HTTP Cookies 方式传递给当前脚本的变量的数组。
变量的作用域定义了变量的环境上下文。在大多数情况下,PHP 变量只有一个变量域。这一作用域也涵盖了 include 与 require 的文件。
$a and $b - 只有在 $a 和 $b 都为 true 的情况下才为 true
$a & $b - 把 $a 和 $b 中都为 1 的位设为 1
. 运算符返回左右两边字符串的拼接结果。 .= 运算符将右边的结果附加到左边的参数上。
$a === $b 如果 $a 和 $b 具有相同顺序和相同类型的键 / 值对,则为 TRUE 。
!= 表示不等于 (如果 $a 不等于 $b 则为 TRUE) ; !== 表示 不全等 ( 如果 $a 不完全等于 $b 则为 TRUE).
我们用 instanceof 能够验证 PHP 变量是否是某个类的实例话对象。
goto 语句可以放置在 PHP 程序中以启用跳转。 目标由后跟冒号的标签指向,指令被指定为 goto 语句,后跟所需的目标标签。
Exception::getMessage 让我们得到异常消息, Exception::getLine 让我们得到发生异常的行。
Exception::__toString 给出异常的字符串表示形式。
函数 parse_ini_file () 使我们能够加载在文件名中指定的 ini 文件,并以关联数组的形式返回其中的设置。
布尔函数 isset 确定变量是否已经设置并且该变量不是 NULL。
字符串函数 strstr (全部字符串,要查找的字符串) 返回从首次出现到全部字符串结束的部分字段串。 这个函数是区分大小写的。 stristr () 除了不区分大小写之外,与 strstr () 完全相同。
for 表示如下:
for (expr1; expr2; expr3)
expr1 在开头执行一次。 在每次迭代中,expr2 都会被评估。 如果评估结果是 TRUE, 循环继续, 并执行 for 中的语句。 如果评估结果是 FALSE, 循环结束。expr3 在每次迭代结束时进行测试。
但是,foreach 提供了一种遍历数组的简便方法,并且仅与数组和对象一起使用。
可以使用 document.form.submit () 函数提交表单。 例如:
函数 eregi_replace () 与 ereg_replace () 相同,只是在匹配字母字符时忽略大小写区别。
是的, 我们使用 urlencode () 函数 来保护特殊字符。
三类基本错误类别是: 通知 (非关键错误)、警告 (严重错误) 和 致命错误 (严重错误)。
.34 是八进制 34 , .34 是十六进制 34.
可以使用会话,cookie 或隐藏的表单字段在 PHP 页面之间传递变量。
使用 set_time_limit (int seconds) 可以延长 PHP 脚本的执行时间。 默认限制为 30 秒。
是的,可以通过设置 cookie 的过期时间来实现。
php 中的默认会话时间是直到浏览器关闭为止。
是的, 可以在框架中提供的 PHP 脚本中集成(分布式)组件对象模型组件((D)COM)。
是的,可以在多个项目之间共享一个 Memcache 实例。 Memcache 是一个内存存储空间,您可以在一个或多个服务器上运行 memcache。您还可以将客户端配置为与特定实例集进行对话。因此,您可以在同一主机上运行两个不同的 Memcache 进程,但它们是完全独立的。除非您已经对数据进行了分区,否则有必要知道从哪个实例获取数据或将数据放入哪个实例。
当 PHP 更改时,您可以通过以下方式更新 Memcached
主动清除缓存: 进行插入或更新时清除缓存
重置缓存: 与第一种方法类似,但不仅仅是删除键并等待下一个数据刷新缓存的请求,而是在插入或更新后重置值。