Php知识积累

dirname(__FILE__) 与 PHP define() 及例子define('root',dirname(__file__))

dirname(__FILE__) 与 PHP define() 及例子define('root',dirname(__file__))

PHP define() 函数

定义和用法

define() 函数定义一个常量。

常量类似变量,不同之处在于:

在设定以后,常量的值无法更改常量名不需要开头的美元符号 ($)作用域不影响对常量的访问常量值只能是字符串或数字语法define(name,value,case_insensitive)

name必需。规定常量的名称。value必需。规定常量的值。case_insensitive

必需。规定常量的名称是否对大小写敏感。

若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。

dirname(__FILE__)

php中定义了一个很有用的常数,即

__file__

这个内定常数是当前php程序的就是完整路径(路径+文件名)。

即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。

请看下面例子:
/home/data/demo/test/a.php


<?php
$the_full_name=__FILE__;
$the_dir=dirname(__FILE__);
echo$the_full_name; //返回/home/data/demo/test/a.php
echo $the_dir;            //返回/home/data/demo/test
?>

home/data/demo/b.php


<?php include "test/a.php";
echo$the_full_name; //返回/home/data/demo/
echo $the_dir;            //返回/home/data/demo/test而不是/home/data/demo/
?>test/a.php 而不是/home/data/demo/b.php

简单地说:
      __FILE__     返回当前 路径+文件名
      dirname(__FILE__) 返回当前文件路径的 路径部分
      dirname(dirname(__FILE__));得到的是文件上一层目录名(不含最后一个“/”号)

例如,当前文件是 /home/data/demo/test.php ,则 
__FILE__ 得到的就是完整路径       即 /home/data/demo/test.php ,而
dirname(__FILE__)得到路径部分   即 /home/data/demo     (后面没有“/”号)


---------------------------------------------------------------------------------

获取PhP环境目录:

$DOCUMNET_ROOT=$_SERVER['DOCUMENT_ROOT'];

echo "document root:"."$DOCUMNET_ROOT";

$DOCUMNET_ROOT 一定要这样写

如果使用的站点是默认站点,则获取的根目录是: c:/inetpub/wwwroot


----------------------------------------------------------------------------------------------------------

PHP判断字符串操作函数:

if(preg_match("/^[0-9a-zA-Z]{3,12}$/",$variable)){
echo "<script>alert('只能是英文字母或数字, 且长度必须是3-12个字');history.back(-1);</script>";die;
}
//其实判断是否是字母和数字或字母数字的组合还可以用PHP ctype_alnum函数
if(!ctype_alnum($vipurl)){
echo '只能是字母或数字的组合';exit;
}

顺便复习下ctype functions
1.ctype_alnum(string $text)://检查是否是字母或数字或字母数字的 组合
2.ctype_alpha(string $text):check for alphabetic character(s) //检查字符串是否是字母
3.ctype_cntrl(string $text):check for control character(s) //是否是控制字符如 , ,\t
4.ctype_digit(strint $text):check for numeric character(s) //是否是数字表示的字符大多数时也许应该用is_numeric
这个要特别注意与is_numeric()的区别
例:$numeric_string='42';
$interger = 42;
ctype_digit($numeric_string);//true
ctype_digit($interger);//false
is_numeric($numeric_string); //true
is_numeric($interger); //true
5.ctype_graph(string $text):Check for any printable character(s) except space
6.ctype_lower():check for lowercase character(s)//检查是否是小写字母
7.ctype_upper():check for uppercase character(s)//检查是否是大写字母
8.ctype_space: check for whitespace character(s)//是否是空白字符
9.ctype_xdigit: check for character(s) representing a hexadecimal digit//检查是否是十六进制数字
 
实例: if((!isset($error)) and (!preg_match("/^[_0-9a-zA-Z]{3,12}$/i",$nicker))) $error='只能是英文字母或数字, 且长度必须是3-12个字';

 

-----------------------------------------------------------------------------------------------------------

PhP判断字符串是否为数字

前两天写PHP代码的时候遇到要判断一个变量是否为数字,所以就把相关的文章简单的摘抄了过来:

php 正则验证字符串是否为数字

方法一: php中利用正则表达式验证字符串是否为数字一件非常容易的事情,最主要的是如何写好正则表达式以及掌握正则表达式的写法,在此利用正则表达式的方式来列举一下判断数字的方法。

<? if($str) { 

  if(eregi("^[0-9]+$",$str))   {     $str=(int)$str;   }  

 else   {     echo "获取到的数据不是有效的数字类型,操作将停止!";     exit();   } }

else {   echo "需要验证的数据为空,操作停止!";   exit(); } 

?> 

 方法二: 建议大家对关键的参数必须做过滤。如数字正则过滤 if(preg_match("/^\d*$/",$fgid))    echo('是数字'); else   echo('不是数字'); 或者用函数 if(is_numeric($fgid)) echo('是数字'); else echo('不是数字');[/code]这两种方法的区别是  is_numeric小数也会认为是数字,而前面正则会把小数点当作字符。 

 附一些常用的正则运算: 

 验证数字:^[0-9]*$

验证n位的数字:^\d{n}$

验证至少n位数字:^\d{n,}$

 验证m-n位的数字:^\d{m,n}

你可能感兴趣的:(Php知识积累)