php 学习02

<?php

/*
 * 魔术常量(8)个 它们的值随着它们在代码中的位置改变而改变
 * __LINE__ 返回当前文件所在行号
 * __FILE__ 返回包含当前文件的绝对路径和文件名
 * __FUNCTION__ 返回函数的名称(区分大小写)
 * __CLASS__ 返回类的名称(区分大小写)
 * __MOTHOD__ 返回类的方法的名称(区分大小写)
 * __NAMESPACES__ 返回当前命名空间的名称(区分大小写)
 * __DIR__  文件所在的目录
 * __TRAIT__ 返回trait被声明的名字
 */

namespace think;

echo "当前行号:" . __LINE__ . "<br/>";
echo "当前文件名/路径:" . __FILE__ . "<br/>";

//__FUNCTION
function test() {
    echo "返回函数名称:" . __FUNCTION__ . "<br/>";
}

test();

class Test {

    public function p() {
        echo "当前类的方法名为:" . __METHOD__ . "<br/>";
        echo "当前类的名为:" . __CLASS__ . "<br/>";
    }

}

$d = new Test;
$d->p();
echo "当前的命名空间是:" . __NAMESPACE__;
//__DIR__
//echo '文件所在的目录'.__DIR__;
/*
 * 预定义常量
 * 1.PHP_VERSION 返回php的版本
 * 2.PHP_OS PHP解释器操作系统名称
 * 3.E_ERROR 最近的错误处
 * 4.E_WARNING 最近的警告处
 * 5.E_NOTICE  最近的通知处
 * 6.E_PARSE  剖析语法的潜在问题处
 * 7.PHP_EOL  系统换行符
 * 8.DIRECTORY_SEPARATOR   系统目录分隔符,Windows是反斜线(\),Linux是斜线(/)
  9.PATH_SEPARATOR             多路径间分隔符,Windows是反斜线(;),Linux是斜线(:)
 * php_sapi_name();
  返回描述 PHP 所使用的接口类型(the Server API, SAPI)的小写字符串。
  例如,CLI 的 PHP 下这个字符串会是 "cli",Apache 下可能会有几个不同的值,取决于具体使用的 SAPI。
  以下列出了可能的值:
  aolserver、apache、 apache2filter、apache2handler、 caudium、cgi (直到 PHP 5.3), cgi-fcgi、cli、 continuity、embed、 isapi、litespeed、 milter、nsapi、 phttpd、pi3web、roxen、 thttpd、tux 和 webjames。
 * 
 *  dirname(string path)给出一个包含全路径的文件的字符串,本函数返回去掉文件名的目录名
 *   在windows中,/和\都可以作为目录的分隔符,其他环境下是/
 *   dirname("index.php") 返回.
 *   dirname("/index.php") 返回\
 *   dirname("/ect/password") 返回/ect
 *   dirname(__FILE__)  返回E:/WWW/php/02 
 *   dirname 会取消文件名和前面的/(\),如 E:/www/php/02/index.php,会返回 E:/www/php/02
 *   pathinfo($path) 返回文件的信息,以数组形式
 *   array(
  [dirname] => E:\www1\daiyutage\php\02
  [basename] => index.php
  [extension] => php
  [filename] => index
  )

 * 
 */
//echo "php的版本是:".PHP_VERSION;
//echo "操作系统为:".PHP_OS;
//echo "是否为命令行:".PHP_SAPI;
//echo "最近的错误处:".E_ERROR;
//echo "系统的换行符好:".PHP_EOL;
//echo PHP_INT_MAX,"<br/>";
//echo PHP_INT_SIZE;
//echo php_sapi_name();
///*
// * dirname();
// * 
// */
//echo dirname(__FILE__).'/cookie.txt';
//print_r(pathinfo(__FILE__));

/*
 * 遍历目录函数
 * 第一种方法 (类操作:Directory);
 * dir(filename); 返回一个目录的对象,即Directory类的实例,Directory类不用new对象,用dir实例化对象
 * 然后调用Directory类的read方法,用while循环读取该目录下的文件或子目录
 * 如果读到子目录,那么那递归遍历
 * 第二种方法
 * $hand = opendir(filename); 此函数返回目录的句柄
 * readdir($hand); 用此函数读取目录
 * 如果读到子目录,那么递归遍历
 */
$obj = dir("../01");
//print_r($obj);
echo "<br/>";
//listDriectory("../01");

function listDriectory($directory) {
    $obj = dir($directory);
    echo '<ul>';
    while ($file1 = $obj->read()) {
        if (is_dir("$directory/$file1") && ($file1 != '.') && ($file1 != '..')) {
            echo "$file1" . "<br>";
            listDriectory("$directory/$file1");
        } else if (($file1 != '.') && ($file1 != '..'))
            echo "<li>", $file1, "</li>";
    }
    echo '</ul>';
}

//第二种遍历目录方法 opendir,readdir
function outDriectory($directory,$new_directory) {
    $hand = opendir($directory);
    if (!$hand) {
        echo "操作目录失败";
        return;
    }
    echo '<ul>';
    while ($file1 = readdir($hand)) {
        if (is_dir("$directory/$file1") && ($file1 != '.') && ($file1 != '..')) {
            echo "$file1" . "<br>";
            if(!is_dir("$new_directory/$file1"))
                  mkdir("$new_directory/$file1");
            
            outDriectory("$directory/$file1","$new_directory/$file1");
        } else if (($file1 != '.') && ($file1 != '..'))
        {
            echo "<li>", $file1, "</li>";
            //var_dump("$directory/$file1");
            //copy("$directory/$file1","$new_directory/$file1");
        }
    }
    echo '</ul>';
}
echo exec("");
//outDriectory("c:\\","haha");
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
//function tree($directory) 
//{ 
//	$mydir = dir($directory); 
//	echo "<ul>\n"; 
//	while($file = $mydir->read())
//	{ 
//		if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) 
//		{
//			echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n"; 
//			tree("$directory/$file"); 
//		} 
//		else 
//		echo "<li>$file</li>\n"; 
//	} 
//	echo "</ul>\n"; 
//	$mydir->close(); 
//} 
开始运行
//
//echo "<h2>目录为粉红色</h2><br>\n"; 
tree("../01"); 
//
///***********************
//第二种实现办法:用readdir()函数
//************************/
//function listDir($dir)
//{
//	if(is_dir($dir))
//   	{
//     	if ($dh = opendir($dir)) 
//		{
//        	while (($file = readdir($dh)) !== false)
//			{
//     			if((is_dir($dir."/".$file)) && $file!="." && $file!="..")
//				{
//     				echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>";
//     				listDir($dir."/".$file."/");
//     			}
//				else
//				{
//         			if($file!="." && $file!="..")
//					{
//         				echo $file."<br>";
//      				}
//     			}
//        	}
//        	closedir($dh);
//     	}
//   	}
//}
开始运行
listDir("./nowamagic");
/*
 * 文件拷贝函数
 * copy(src,des);
 * //文件重命名
 * rename(old,new);
 * 拷贝目录下的所有文件和子目录
 * 1.先遍历目录
 * 2.在遍历的过程中拷贝,如果文件夹不存在,mkdir()先创建文件夹
 * 
 */
//copy("index.php","index_copy.php");
//rename("index_copy.php","index_new.php");
tam,zsgy,hh,nlgx,zydst,nc,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值