这是一款简单的php目录与文件操作的入门教程,我们主要是讲三个函数opendir、readdir和closedir的使用方法。
代码如下 |
复制代码 |
$dir = "d:www.111cn.net";
//打开目录$dir,并将目录句柄赋给变量$dh
if($dh = opendir($dir))
{
//通过while循环,使用函数readdir获取文件名
while(($file_name = readdir($dh)) !== false)
{
echo "file name: ".$file_name;
echo "<br/>";
echo "<br/>";
}
//处理完成后,关闭目录句柄$dh
closedir($dh);
}
|
/*
opendir定义和用法
opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。
语法
opendir(path,context)
readdir定义和用法
readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
若成功,则该函数返回一个文件名,否则返回 false。
语法
readdir(dir_stream)
closedir() 函数关闭由 opendir() 函数打开的目录句柄。
语法
closedir(dir_stream)
本教程是一款php ajax返回 json数据实例哦,就是利用ajax实时的接受json.php文件发送的数据请求,并且进行了处理。
代码如下 |
复制代码 |
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>php教程 ajax返回 网页特效on数据实例</title>
<script type="text/网页特效" language="javascript">
var xmlhttp;
function createxmlhttprequest()
{
//var xmlhttp=null;
try
{
// firefox, opera 8.0+, safari
xmlhttp=new xmlhttprequest();
}
catch (e)
{
// internet explorer
try
{
xmlhttp=new activexobject("msxml2.xmlhttp");
}
catch (e)
{
xmlhttp=new activexobject("microsoft.xmlhttp");
}
}
return xmlhttp;
}
function startrequest(id)
{
createxmlhttprequest();
try
{
url="json.php?cid="+id;
xmlhttp.onreadystatechange = handlestatechange;
xmlhttp.open("post", url, true);
xmlhttp.send(null);
}
catch(exception)
{
alert("xmlhttp fail");
}
}
function handlestatechange()
{
if(xmlhttp.readystate == 4)
{
if (xmlhttp.status == 200 || xmlhttp.status == 0)
{
var result = xmlhttp.responsetext;
var json = eval("(" + result + ")");
alert('name:'+json.name);
alert('age:'+json.age);
alert('id:'+json.id);
}
}
}
</script>
</head>
<body>
<div>
<input type="button" value="ajaxtest" onclick="startrequest(5);" />
</div>
</body>
</html>
|
json.php 文件
代码如下 |
复制代码 |
<?php
/**************************************************************
*
* 使用特定function对数组中所有元素做处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数
* @return boolean $apply_to_keys_also 是否也应用到key上
* @access public
*
*************************************************************/
function arrayrecursive(&$array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayrecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 将数组转换为json字符串(兼容中文)
* @param array $array 要转换的数组
* @return string 转换得到的json字符串
* @access public
*
*************************************************************/
function json($array) {
arrayrecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
$array = array
(
'name'=>'希亚',
'age'=>20,
'id'=>$_post['cid']
);
|
echo json($array);
/*********
{"name":"希亚","age":"20"}
?>
php 读取文件内容与向文件写入数据这里主要是讲一行行写数据到文件,也一行行读出文件的内容。
*/
代码如下 |
复制代码 |
$fp = fopen($_server['document_root']."/../data/info.dat",'r');
if(!$fp)
{
echo "<b>error: 打开文件错误,请检查目录是否正确,或稍后再试!</b>";
exit;
}
while(!feof($fp))
{
$line = fgets($fp);
echo $line;
echo '<br/>';
}
|
fclose($fp);
//写文件
代码如下 |
复制代码 |
$file = "data.txt";
$content = "内容标题 www.111cn.net 内容第二行"; //要写入的内容
if(!$fp = fopen($file,'a')) //打开文件$file时,使用追加模式,此时文件指针会在文件开始处
{
echo "打开文件$file失败!";
exit;
}
if(fwrite($fp,$content) === false) //将内容写入文件
{
echo "写入文件失败!";
exit;
}
echo "写入文件成功!";
fclose($fp);
|
创建目录就用mkdir有一点像dos里面的创建目录哦,方法很简单,关于删除目录,这里用了rmdir,但是只删除空目录,不能删除里面有文件或文件夹的目录,如果要删除不是空目录就要用递归来删除了/
代码如下 |
复制代码 |
$dir_name = "www.111cn.net";
if(mkdir($dir_name)) //在当前目录下创建目录tmp_data
{
echo "目录".$dir_name."创建成功!";
//在目录tmp_data中创建一个文件tmp.txt,并向其中写入一些内容
if($fp = fopen($dir_name."/www.111cn.net.txt",'a'))
{
if(fwrite($fp,"put some contenets into file."))
{
echo "<hr>";
echo "在目录".$dir_name."下创建文件tmp.txt";
}
}
}
else
{
echo "创建目录失败!";
exit;
}
echo "<hr>";
if(rmdir($dir_name)) //尝试删除目录tmp_data
{
echo "删除目录".$dir_name."成功!";
}
else
{
echo "删除目录失败!";
exit;
}
|
/*
总结:
*/
方法很简单的php 判断文件或目录是否存在有自带的函数,file_exists文件是否存在,判断目录是否存在我们用is_dir就OK了。
*/
代码如下 |
复制代码 |
$file = "data.txt";
$dir = "www.111cn.net/newdata";
if(file_exists($file))
{
echo "当前目录中,文件".$file."存在";
echo "<br/>";
}
else
{
echo "当前目录中,文件".$file."不存在";
echo "<br/>";
}
echo "<br/>";
echo "<hr>";
echo "<br/>";
|
代码如下 |
复制代码 |
if(is_dir($dir))
{
echo "当前目录下,目录".$dir."存在";
echo "<br/>";
}
else
{
echo "当前目录下,目录".$dir."不存在";
echo "<br/>";
}
|
标签:[!--infotagslink--]