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}