php学习心得笔记20140929

本文介绍了PHP编程中的实用技巧和常见问题解决方案,包括路径获取、字符串处理、文件上传及数据库操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2014/09/29
//begin

$_SERVER['SCRIPT_NAME'] 返回/mantis/test.php,相对路径;
__FILE__ 返回文件的绝对路径D:\Projects\mantis\test.php

用法:echo $_SERVER['SCRIPT_NAME'];
      echo __FILE__;

$GLOBALS一个包含了全部变量的全局组合数组。变量的名字就是数组的键。 
explode 使用一个字符串分割另一个字符串 返回一个字符串数组
implode 使用一个字符将数组元素链接成字符串
$_SERVER['SERVER_NAME'] 当前脚本所在服务器的主机名
$_SERVER['HTTP_HOST'] 域名
$_SERVER['SERVER_ADDR'] 当前脚本所在服务器的IP地址
trim去除字符串首尾处的空白字符
basename 返回文件名部分
dirname 返回目录部分
krsort — 对数组按照键名逆向排序
set_time_limit()设置脚本最大执行时间

time() 返回当前的unix时间戳

is_string()判断变量是不是字符串

is_bool

is_Inteter

is_float

strtotime --  将任何英文文本的日期时间描述解析为 UNIX 时间戳

file_exists 检查文件或目录存不存在

fopen()打开指定的文件或URL
feof()判断文件指针是否在末尾

fgets()从文件指针中读取一行

trim()去掉一行前后的空格

strlen()返回字符串的长度

str_replace
isset
str_replace( "\0", '', $t_self ) 将t_self中的\0替换成“”
strpos — 查找在字符串中首次出现的位置
$_SERVER['SERVER_SOFTWARE'] 服务器信息
realpath 返回规范化的绝对路径名
DIRECTORY_SEPARATOR 操作系统目录分隔符
PATH_SEPARATOR 在linux系统中是一个" : "号,Windows上是一个";"号
set_include_path 设置incldue_path

get_include_path 获取当前include_path

count() 返回数组长度,非数组返回1

substr(string string ,int start [int length]) 返回从start指定位置开始的长度的字符串
$_SERVER['LOCAL_ADDR'] IIS7上用来获取服务器IP地址
$_SERVER['REMOTE_ADDR'] 浏览器用户的IP地址
array_pad — 用值将数组填补到指定长度
memory_get_usage()返回分配给PHP的内存量
spl_autoload_register 注册__autoload()函数
ob_get_contents() Return the contents of the output buffer
strtolower() 将大写字母转换为小写字母
extension_loaded('zlib')找出扩展是否被加载
ini_get 返回php.ini中配置项的值
ini_set 设置php.ini中配置项的值 ,ini_set("memory_limit",'256M'); 只在脚本执行期间生效,脚本执行完成该值重置
PHP_EOL PHP行结束符

preg_replace 执行一个正则表达式的替换

preg_match(string pattern, string subject [, array matches [, int flags]]) -- 进行正则表达式匹配

htmlspecialchars  Convert special characters to HTML entities
ceil() 进一法取整
floor() 舍去法取整
round()四舍五入法           

end//


////早期笔记
1.在php文件中,一定要另存为utf-8的编码格式,所以的编码全部统一为utf-8之后才不会乱码。
2.想让字体滚动用:<marquee scrollamount="2" scrolldelay="80">
3.比如b.php有echo $_SERVER['SCRIPT_NAME'];那么输出是/htdocs/common/b.php,明白了,会直接把当前语句所在脚本文件路径输出。
4.在用session的时候,一定要记得在开头用
<?php
session_start();
?>,否则用session不成功。
5.在创建时间的时候,中国时间用
date_default_timezone_set(PRC);设置。
6.批量删除数据用复选框:
  在一个页面:<input type="checkbox" name="<?php echo $myrow[id];?>" value="<?php echo $myrow[id];?>">
  在另外一个页面:while(list($name,$value)=each($_POST)){
                   $result=mysql_query("delete from db where id='".$name"'");}
 7.关于phpmyadmin中添加外键的做法
  今天想加个外键,又不想用命令行,打开PHPMYADMIN看怎么弄,找了半天没有找到添加外键的地方,然后上网搜了一会,
发现目前的PHPMYADMIN确实没有这个设置,所以只能手动命令行添加了。
语法如下:
ALTER TABLE 表名 ADD FOREIGN KEY (字段名) REFERENCES 表名(字段名) 
再找了下资料,发现原来确实是可以通过面板修改的。不过要将数据库的类型更改为INNODB类型。
改完类型后便会出来一个关系表那样的选项。可以直接修改。
用错了表的引擎的话,要用以下命令行来修改表名,不过有风险,所以请先备份数据。

ALTER TABLE 数据库表名 type='MYISAM'

ALTER TABLE 数据库表名 type='InnoDB'
8.使用PHP的htmlentities()函数可以把字符转换为HTML实体:
  <?php 
echo htmlentities("<?php");
echo htmlentities('?>');
?>
会输出<?php ?>

9.关于echo “”和echo ‘’;
   双引号会输出实际的值,而单引号只会输出普通字符,
例如:
  $i="我呢";
  echo "$i";//输出“我呢”
  echo '$i';//直接输出$i

10.在php中设置编码header('Content-Type:text/html;charset=gb2312');
   或在<head>下面加上  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11.返回上级操作:<a href="javascript:history.back(-1)">返回</a>
12.用javasc实现跳转:echo "<script>alert('转去的页面!');window.location.href='index.php';</script>";
13.把HTML的实体保存:
   $content=htmlspecialchars($_POST[content]);
   $content=str_replace("\n","<br>",$content);//换行
   $content=str_replace(chr(32),"&nbsp;",$content);// 空格
  
14.文件上传中:
  指定表单编码数据方式:<form action="" method="post" enctype="multipart/form-data">
  
  限制的大小:    <input type="hidden" name="MAX_FILE_SIZE" value="10000" />
    需要放在  <input type="file" name="up_picture"/>  之前才能起作用

    </form>
15.string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。 

16.文件上传的文件中,为了避免重命名覆盖已有文件,用$path='./upfile/'.time().strstr($_FILES['up_picture'] ['name'],'.'); //定义上传文件名称和存储位置

17.string substr ( string $string , int $start [, int $length ] )
返回字符串 string 由 start 和 length 参数指定的子字符串。 
如果 start 是非负数,返回的字符串将从 string 的 start 位置开 始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的 字符是 “a”,位置 2 的字符串是 “c” 等等。 

如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。 

如果 string 的长度小于或等于 start,将返回 FALSE。 

如果提供了正数的 length,返回的字符串将从 start 处开始最多包 括 length 个字符(取决于 string 的长度)。 

如果提供了负数的 length,那么 string 末尾处的许多字符将会被漏 掉(若 start 是负数则从字符串尾部算起)。如果 start 不在这段 文本中,那么将返回一个空字符串。 

如果提供了值为 0,FALSE 或 NULL 的 length,那么将返回一个空字 符串。 

如果没有提供 length,返回的子字符串将从 start 位置开始直到字 符串结尾。 

18.在进行截取字符时避免中文乱码函数:
function chinesesubstr($str,$start,$len){    //$str指的是字符串,$start指的是字符串的起始位置,$len指的是长度。
$tmpstr="";
$strlen=$start+$len; //用$strlen存储字符串的总长度(从字符串的起始位置到字符串的总长度)
for($i=0;$i<$strlen;$i++){ //通过for循环语句,循环读取字符串
if(ord(substr($str,$i,1))>0xa0){    //如果字符串中首个字节的ASCII序数值大于0xa0,则表示为汉字
  $tmpstr.=substr($str,$i,2); //每次取出两位字符赋给变量$tmpstr,即等于一个汉字
  $i++; //变量自加1
}else{ //如果不是汉字,则每次取出一位字符赋给变量$tmpstr
  $tmpstr.=substr($str,$i,1);
}
}
return $tmpstr; //输出字符串
}
19.      
      ../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推。

20.PHP获取当前目录和相对目录的方法  
  // 获取当前目录
echo realpath("."). "<br>"; 
echo getcwd() . "<br>"; 
// 获取上级目录
echo realpath(".."). "<br>"; 
// 获取网站根目录
echo $_SERVER['DOCUMENT_ROOT'];
// 获取目录信息
$path_parts = pathinfo(__FILE__); 
echo $path_parts["dirname"] . "<br>"; 
echo $path_parts["basename"] . "<br>"; 
echo $path_parts["extension"] . "<br>"; 
echo dirname(__FILE__);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值