学习PHP的笔记

学习PHP有一阵子,最近项目提前完成了,有不少时间,复习一下基础知识,主要从一下两个方面

1、PHP中新人常见的错误和问题

2、Mysql的使用


碰巧最近得到别人分享的PHP教程系列的文章。


一、如何避免乱码,常用的四种方法

A、文件乱码   1、入口文件的第一行,强制输出(常用)!<?php header("Content-type : text/html;charst=utf-8");?>

这段代码就相当于相当于页面里面的<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

     2、html模板head部分  <meta http-equiv ="Content-Type" content ="text/html;charster=utf-8"/>


B、数据库乱码  1、数据库本身创建的时候指定编码(常用) 

2、php链接mysql的时候设置 

<?php

function getField($table_name){

$link =mysql_connect('localhost','root','1234abcd');

mysql_quert('use_daxue');

mysqll_query('set names utf8');

$result = mysql_query("desc{$table_name}");

}

 

总结就是在读取文件,数据库之前一定要将文字的解析变成utf-8的格式。


二、mysql中常见的错误总结

A、没有处理用户输入 这或者可以这样说:#1:永远不要相信用户的输入。用服务器的PHP验证每一个字符串,不要寄希望于JavaScript。最简单的SQL注入攻击会利用如下的代码:

B、相对于SQL,偏爱PHP  如果你接触Mysql不久,那么你就偏向于使用自己已经掌握的语言来解决问题,这样会导致写出一些冗余、低效率的代码。比如,不会使用 Mysql自带的AVG()函数,却会先对记录几种的值求和然后用PHP循环来计算平均值。此外,请注意PHP循环中的SQL查询。通常来说,执 行一个查询比在结果中迭代更有效率。所以,在分析数据的时候请用数据库系统的有事,懂一些SQL的知识将会大有裨益。

C、没有优化数据库查询    99%的PHP性能问题都是由数据库引起的,仅仅一个糟糕的SQL查询就能让你的web应用彻底瘫痪。MySQL的EXPLAIN statement、Query Profiler,还有很多其他的工具将会帮助你找出这些万恶的SELECT。

D、不能正确的使用数据类型


E、在查询中使用*  永远不要使用*来返回一个数据表所有列的数据。这是懒惰:你应该提取你所需要的数据。就算你需要所有字段,你的数据表也不可皮面 的会产生变化。

F、不使用索引或者过度使用索引 一般性的原则是这样:select语句中的热河一个where子句表示的字段都应该使用索引。

举个例子,假设我们有一个user表,包括numericID和email address。登录的时候,MySql必须以一个Email为依据查找正确的ID。如果使 用了索引的话,那么Mysql就能是用更快的搜索算法来定位email吗,甚至可以说是即时实现。否则,Mysql就只能顺序检查每一条记录知 道找到正确的email 啊dress。

有的人会在每一个字段上都添加索引,遗憾的是,执行了INSERT或者UPDATE之后忙着写索引都需要重新生成,这样就会影响性能。所 以,只在需要的时候添加索引。


三、几种常见的PHP特殊函数及其用法


A、echo B、print echo的别名 无论是效率,还是灵活度,都不及echo 

C、exit  输出后就会终止整个php的运行,一下几种方法也都合法,但要注意:exit“a”;是不合法的:

exit; exit();exit('a');


四、学习PHP过程中必须掌握的常用函数


A、写入文件      1、打开资源(文件) fopen($filename,$mode)

2、写文件fwrite($handle,$str)

3、关闭文件fclose($handle)

4、一步写入file_put_contents($filename,$str,$mode) FILE_APPEND LOCK_EX


B、读文件        1.读文件fread($handle,字节数)

2.读一行fgets($handle);

3.读一个字符fgetc($handle)

4.读成一个数组中file($filename)

5,一步读取file_get_contents($filename)



C、目录操作

1,建目录mkdir($dirname)

2、删除目录rmdir($dirname)

3、打开目录句柄opendir($dirname)

4、读取目录条数readdir($handle)

5、关闭目录资源closedir($handle)

6、重置目录资源rewinddir($dirname)


D、目录和文件操作

1、检查文件或目录是否村子啊 file_exits($filename)

2、文件或者目录重命名rename($file)


E、文件操作

1、拷贝文件copy('原文件','目标文件')

2、删除文件unlink($filename)

3、获取文件大小filesize($filename)

4、取得文件的创建时间filectime()

5、取得文件的访问时间fileatime($filename)

6、取得文件的修改时间filemtime($filename)


F、路径操作

1、获取路径dirname($path)

2、获取文件名 basename($path)

3、获取路径信息 pathinfo($path)

G 数据函数(极其重要)

1、在数组开头插入一个元素array_unshift($arr,$v)

2、在数组的尾部添加数组袁术array_push($arr,$v,$v1...)

3、将数组的第一个元素移除,并返回此元素array_shift($arr)

4、在数组稳步删除元素array_pop($arr)

5、将数组用$separator连接成一个字符串implode($a,$arr)

6、检测变脸是否是数组is_array($arr)

7、获得数组的键名 array_keys($arr)

8、获得数组的键名 array_values($arr)

9、检索$value是否在$arr中,返回布尔值in_array($v,$arr)

10、检索在$arr中,是否有$key这个键名array_key_exits($k,$arr)

11.检索$value是否在$arr中,若存在返回键名Array_search($value,$arr)

12、将一个数组逆向排序,如果第二参数为true,则保持键名Array_reverse($arr,true)

13、交换数组的键和值Array_flip($arr)

14、统计数组元素的个数Count($arr)

15、统计数组中所有值的出现次数 Array_count_value($arr)

16、移除数组中的重复值Array_count_values($arr)

17、值由小到大排序Sort($arr)

18、值由大到小派讯Rsort($arr)

19、键由小到大排序ksort($arr)

20、键由大到小排序 ksort($arr)

21、随机从数组中取得$num个数Array_rand($arr,$num)

22、对数组的所有元素求和 Array_sum($arr)

23、合并数组array_merge($arr,$arr)


F 字符串函数


1.输出字符串 echo($str) echo 

2.原样输出(区分单引号和双引号) print($str)

3.输出字符串,结束脚本执行 Die($str):die($str) die;

4.输出字符串,结束脚本执行 exit($str) exit;

5.输出格式化字符串 printf($str,$p1,...)

6.不直接输出格式化的字符串,返回格式化的字符串,保存到变量中 sprintf($str,$p1,...)

7.打印变量的相关信息 var_dump($p)

8.字符串转换为小写 strtolower($str)

9.字符串转换为大写 strtoupper($str)

10.将字符串的第一个字符转换为大写 ucfirst($str)

11.将字符串中每个单词转换为大写 ucwords($str)

12.去除字符串两端的空白字符。 Trim($str,' ,')

13.去除字符串左边空白字符。 Ltrim($str)

14.去除字符串右边空白字符。Rtrim($str)
空白字符:"","\t","\n","\r",”\0” 

15取得字符串长度 strlen($str)

16统计包含的字符串个数 substr_count($str,’子串’)

17返回字符串$string中由$start开始,长度为$length的子字符串
Substr($string ,$start[,$length])

18返回字符串$string中,$search第一次出现到字符串结束的子字符串。
Strstr($string,$search)

19查找$search在$str中第一次位的置,从$offset开始。
Strpos($str,$search[,int $offset])
20.查找$search在$str中最后一次的位置,从$offset开始
Strrpos($str,$search[,int $offset])
21.替换$str中的全部$search为 $replace。
Str_replace($search,$replace,$str)
22.重复输出指定的字符串
Str_repeat()
23.加密字符串
Md5()
24.字符串翻转
Strrev()
25.使用一个字符串分割另一个字符串,形成一个数组//把字符串变成数组
Explode(“分隔符”,$str);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值