关于PHP的100个小知识
第三期【41-60】
正文内容
41、===
是什么?试举一个==
是真但===
是假的例子?
===
是为全等于的意思。举例:
if (strpos('abc', 'a') == false){
// 这部分就执行了,0转换成了false
echo " strpos('abc', 'a') == false \n<br>";
}
if (strpos('abc', 'a') === false){
// 这不份没有执行,0不是fasle
echo " strpos('abc', 'a') === false \n<br>";
}
var_dump(strpos('abc', 'a'));// 这是提示:a出现在abc中第一个位置记为 0
42、如何修改SESSION
的生存时间?
方法1:
将php.ini
中的session.gc_maxlifetime
设置为9999
重启服务
方法2:
$savePath = "./session_save_dir/";
$lifeTime = 24*3600; //小时 * 秒
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法3:
setcookie()
session_set_cookie_params()
43、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?
heredoc
的语法是用<<<
加上自己定义成对的标签,在标签范围內的文字视为一个字符串
例如:
$str = <<<SHOW
my name is Eson !
SHOW;
44、在PHP
中error_reporting
这个函数有什么作用?
在第21个中有提到过。 设置错误级别与错误信息回报。
45、请写一个函数验证电子邮件的格式是否正确?
/**
* 检查是否正确的电子邮箱
* @param $email string
* @return bool
*/
public function checkout_email($email)
{
$pattern='/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';
return preg_match($pattern,$email);
}
46、请写出数据类型(int
char
varchar
datetime
text
)的意思?请问varchar
和char
有什么区别?
int
是数字类型
char
固定长度字符串
varchar
实际长度字符串
datetime
日期时间型
text
文本字符串
char
的场地固定为创建表设置的长度
varchar
为可变长度的字符
47、检测一个变量是否设置?是否为空的函数是?
isset();
// 检测变量是否设置
empty();
// 检测变量是否为空
48、取得查询结果集总数的函数是?
mysql_num_rows();
// 取得结果集中行的数目
49、简述如何得到当前执行脚本路径,包括所得到参数?
<?php
echo "http://{$_SERVER['SERVER_NAME']}{$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}";
echo "\n<br>";
echo "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
50、请举例说明在你的开发过程中用什么方法来加快页面的加载速度?
- 要用到服务器资源时才打开。
- 及时关闭服务器资源。
- 数据库添加索引。
- 页面可生成静态,图片等大文件单独服务器。
- 使用代码优化工具。
51、使用自定义符号分割字符串成为数组?
explode();
52、如果用+
操作符把一个字符串和一个整型数字相加,结果将怎样?
字符串将被丢弃,只保留整型数字
53、以下脚本输出什么?
<?php
$s = '12345';
$s[$s[1]] = '2';
echo "{$s}\n";
12245
54、以下脚本输出什么?
<?php
$x = 'apple';
echo substr_replace($x, 'x', 1, 2);
axle
55、读取文件函数论述:
函数fgets()
能读取文本文件中的一行。读取二进制文件或者其他文件时,应当用fread()
函数。
56、哪个函数能够往文本文件中写入一个字符串?
fwrite()
和fputs()
两个函数在这里都可以,而后者其实是前者的别名。在PHP
中,写入二进制数据和写入字符串没有区别。
57、什么函数可以判断一个文件是否可写?
is_writable();
58、那个函数能将文件指针移到开头?
fseek(0, SEEK_SET);
59、include()
于require()
的不同点:
include()
的功能和require()
一样,不同的是,require()
不能用在文件的中间。
50、下面建立与MySQL Server
的连接语法:
$link=mysqli_connect("host_name","user_name","password");
$link=mysql_pconnect("host_name","user_name","password");
51、将字符串转换成小写:
strtolower()
该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字符串
52、将字符转成大写:
strtoupper()
该函数的作用同strtolower()
函数相反,是将传入的字符参数的字符全部转换成大写,并以大写的形式返回这个字符串.用法同strtolowe()
一 样
53、将字符串首字符转换成大写:
ucfirst()
该函数的作用是将字符串的第一个字符改成大写,该函数返回首字符大写的字符串
54、将字符串每个单词的首字符转换成大写:
ucwords()
该函数将传入的字符串的每个单词的首字符变成大写.如"hello world"
,经过该函数处理后,将返回"Hello Word"
.
55、NoSQL
:Not Only SQL
思想:网站产生的数据,一部分存储数据库、一部分存到NoSQL
相关产品
NoSQL
产品
1、Memcache
:内存(速度快、数据量小)、数据的过期时间
2、MongoDB
:文档数据库
3、Redis
:内存(速度快、数据量小)、库、没有过期时间
56、什么样的数据,存储在什么位置?
MySQL
:稳定的数据
NoSQL
:活跃的数据
57、缓存分类:
- 缓存数据存储位置不同 1)文件缓存 2)内存缓存
- 缓存的数据量的不同 1)页面缓存 2)局部缓存 3)局部不缓存 4)数据缓存(变量缓存、动态缓存)
Memcache
:内存缓存、变量缓存
58、举例一些LINUX
命令:
查看当前目录下所有内容ls
在当前目录下,新建一个文件夹mkdir 文件夹名
删除指定的文件夹rmdir 文件夹名
只能删除空目录
在当前目录下新建一个空白文件touch 文件名
删除当前目录下的一个文件unlink 文件名
删除文件或文件夹rm
复制文件cp
移动文件或文件夹mv
文件或文件夹重命名mv
查看完整的工作目录pwd
切换目录:cd
cd/ 返回根目录
文件传输ftp
scp
查看文件内容cat 文件名
less 文件名
查看文件编码file 文件名
查找文件find 路径 -name 文件名
修改文件或文件夹权限:
权限种类:r 4(读)、w 2(写)、x 1(执行)
权限操作符:+(赋予权限)、-(收回权限)
用户种类:a(所有人)、u(文件拥有者)、g(组用户)、o(其他用户)
查看权限:ls -l
-rw-r--r-- a.txt
drwxr-xr-x hello
第1位:是文件还是文件夹(-文件、d文件夹
)
第234位:u
用户的权限
第567位:g
用户的权限
最后三位:o
用户的权限
1)将最大权限赋予a.txt
chmod a+r+w+x a.txt
chmod 777 a.txt
2)设置a.txt
权限,收回o
用户的wx
权限
chmod o-w-x a.txt
4)设置a.txt
权限:u:rw g:r o:r
chmod 644 a.txt
5)设置hello
文件夹权,给予最大权限(不影响子文件)
chmod 777 hello
6)设置hello
文件夹权,给予最大权限(影响子文件)
chmod -R 777 hello
59、创建文件exer1,设置访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,写出操作过程的命令:
touch exer1
chmod 644 exer1
增加权限
chmod a+x exer1
chmod g+w exer1
或者
chmod 775 exer1
60、易出现编码的地方:
- 文件保存格式的编码
<meta http-equiv=”content-type” content=”text/html;charset=utf-8”>
Header();
MySQL
本身的编码(修改ini
)Set names gbk;
Mysql_query(“set names utf8”);
iconv()
函数PHP
的系统函数进行转码
[hermit auto="1" loop="0" unexpand="1" fullheight="0"]remote#:12[/hermit]