php 文件重命名 rename
我们这里是把文件重命名了,就是用到了rename函数哦,好了费话我也不说多了我们来看看这个读取目录文件然后给文件命名的代码吧。
function CheckDir($dir_path)
{
if(is_dir($dir_path))
{
if($dir_file=opendir($dir_path))
{
while(($dir_list=readdir($dir_file))!==false)
{
if($dir_list!="." && $dir_list!="..")
{
rename($dir_path.$dir_list,$dir_path.$dir_list.'.txt');
}
}
}
else
{
echo($dir_path."<br/>");
}
}
else
{
echo($dir_path."<br/>");
}
}
本站原创转载注明www.111cn.net
我想很多站长都知道fck这个编辑器吧,fck是一个在线文档编辑器,上传的图片是不会保存到数据库中的,所以我们要想办法把它正则出来,下面是一个正则fck input图像域的代码。function get_img($str){
$dpath = 'images/img.jpg';
preg_match('/<input [^>]*>/im',stripslashes(stripslashes($str)), $arr);
preg_match('/src=(.+?)"/im', $arr[0], $arra);
if( strlen(@$arra[1])>10 ){
$dpath = str_replace(""","",@$arra[1]);
}
return "<img src='$dpath' width='163' height='113' />";
}
本站原创转载注明: www.111cn.net
php 读取文件内容并保存到数据库本程序的功能是读取目录下的txt 文件,然后保存到数据哦,就这么简单,下面我们就来看看我是如何把txt文件内容保存到mysql数据表的吧。
<?php
include('../boke/inc/re_conn.php');
CheckDir('file/');
function CheckDir($dir_path)//遍历目录
{
if(is_dir($dir_path))
{
if($dir_file=opendir($dir_path))
{
while(($dir_list=readdir($dir_file))!==false)
{
if($dir_list!="." && $dir_list!="..")
{
$title =substr($dir_list,6,strlen($dir_list)-4);
//echo $title;
openFile($dir_path.$dir_list,$title);
}
}
}
else
{
echo($dir_path."<br/>");
}
}
else
{
echo($dir_path."<br/>");
}
}
function savaDate($title,$content)//保存数据
{
$title = str_replace('.txt','',$title);
echo $title;
$content = addslashes($content);
$sql ="insert into fil(title,content,siteindex,filesendid,systype,z_type) values('$title','$content',1,'admin',2,31)";
if( mysql_query( $sql ) )
{
echo 'success<br>';
}
else
{
echo mysql_error();
}
}
function openFile($filePath,$title)//读取文件内容提要
{
if( is_file( $filePath ) )
{
$content = file_get_contents( $filePath );
if( !empty( $content ) )
{
savaDate($title,$content);
}
else
{
;
}
}
}
?>
本站原创转载注明: http://www.111cn.net
我们在作flash 在线拍照片时要保存由flash HTTP_RAW_POST_DATA过来的数据,我们就可把flash发送过来的图片数据保存起来,下面就来看看源码吧。<?php
@session_start();
require_once("../Inc/Conn.php");
require_once("../Inc/function.php");
$filepath = '../userhead/';
$filename = time().mt_rand(10,100);
//$uid = get_id($_SESSION['uname']);
$uid = 14;
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
$im = $GLOBALS["HTTP_RAW_POST_DATA"];
if( !is_dir( $filepath ) )
{
mkdir($filepath,0777);
}
if(file_put_contents($filepath.$filename.'.jpg',$im))
{
$path = 'http://'.$_SERVER['HTTP_HOST'].'/userhead/'.$filename.'.jpg';
savaPath($path);
}
else
{
ShowMsg('result:false');
}
}
function savaPath($path)
{
global $uid;
$sql = "Insert into dd(oy_uid,oy_dsp,oy_path) value('$uid','','$path')";
if( mysql_query( $sql ) )
{
ShowMsg('result:true');
}
else
{
ShowMsg('result:false'.mysql_error());
}
}
?>
本站原创转载注明:www.111cn.net/phper/php.html
无限级分类[预排序遍历树算法]预排序遍历树算法
现在让我们看一看另外一种不使用递归计算,更加快速的方法,这就是预排序遍历树算法(modified preorder tree traversal algorithm)
这种方法大家可能接触的比较少,初次使用也不像上面的方法容易理解,但是由于这种方法不使用递归查询算法,有更高的查询效率。
我们首先将多级数据按照下面的方式画在纸上,在根节点Food的左侧写上 1 然后沿着这个树继续向下 在 Fruit 的左侧写上 2 然后继续前进,沿着整个树的边缘给每一个节点都标上左侧和右侧的数字。最后一个数字是标在Food 右侧的 18。 在下面的这张图中你可以看到整个标好了数字的多级结构。(没有看懂?用你的手指指着数字从1数到18就明白怎么回事了。还不明白,再数一遍,注意移动你的手指)。
这些数字标明了各个节点之间的关系,"Red"的号是3和6,它是 "Food" 1-18 的子孙节点。 同样,我们可以看到 所有左值大于2和右值小于11的节点 都是"Fruit" 2-11 的子孙节点
以下是代码: 1 Food 18
|
+------------------------------+
| |
2 Fruit 11 12 Meat 17
| |
+-------------+ +------------+
| | | |
3 Red 6 7 Yellow 10 13 Beef 14 15 Pork 16
| |
4 Cherry 5 8 Banana 9
复制代码这样整个树状结构可以通过左右值来存储到数据库中。继续之前,我们看一看下面整理过的数据表。
以下是代码: +----------+------------+-----+-----+
| parent | name | lft | rgt |
+----------+------------+-----+-----+
| | Food | 1 | 18 |
| Food | Fruit | 2 | 11 |
| Fruit | Red | 3 | 6 |
| Red | Cherry | 4 | 5 |
| Fruit | Yellow | 7 | 10 |
| Yellow | Banana | 8 | 9 |
| Food | Meat | 12 | 17 |
| Meat | Beef | 13 | 14 |
| Meat | Pork | 15 | 16 |
+----------+------------+-----+-----+
复制代码注意:由于"left"和"right"在 SQL中有特殊的意义,所以我们需要用"lft"和"rgt"来表示左右字段。 另外这种结构中不再需要"parent"字段来表示树状结构。也就是 说下面这样的表结构就足够了。
以下是代码: +------------+-----+-----+
| name | lft | rgt |
+------------+-----+-----+
| Food | 1 | 18 |
| Fruit | 2 | 11 |
| Red | 3 | 6 |
| Cherry | 4 | 5 |
| Yellow | 7 | 10 |
| Banana | 8 | 9 |
| Meat | 12 | 17 |
| Beef | 13 | 14 |
| Pork | 15 | 16 |
+------------+-----+-----+
复制代码好了我们现在可以从数据库中获取数据了,例如我们需要得到"Fruit"项下的所有所有节点就可以这样写查询语句: SELECT * FROM tree WHERE lft BETWEEN 2 AND 11;
复制代码这个查询得到了以下的结果。
以下是代码: +------------+-----+-----+
| name | lft | rgt |
+------------+-----+-----+
| Fruit | 2 | 11 |
| Red | 3 | 6 |
| Cherry | 4 | 5 |
| Yellow | 7 | 10 |
| Banana | 8 | 9 |
+------------+-----+-----+
复制代码看到了吧,只要一个查询就可以得到所有这些节点。为了能够像上面的递归函数那样显示整个树状结构,我们还需要对这样的查询进行排序。用节点的左值进行排序: SELECT * FROM tree WHERE lft BETWEEN 2 AND 11 ORDER BY lft ASC;
复制代码剩下的问题如何显示层级的缩进了。
以下是代码:
<?php
function display_tree($root) {
// 得到根节点的左右值
$result = mysql_query("
SELECT lft, rgt
FROM tree
WHERE name = '" . $root . "'
;"
);
$row = mysql_fetch_array($result);
// 准备一个空的右值堆栈
$right = array();
// 获得根基点的所有子孙节点
$result = mysql_query("
SELECT name, lft, rgt
FROM tree
WHERE lft BETWEEN '" . $row['lft'] . "' AND '" . $row['rgt'] ."'
ORDER BY lft ASC
;"
);
// 显示每一行
while ($row = mysql_fetch_array($result)) {
// only check stack if there is one
if (count($right) > 0) {
// 检查我们是否应该将节点移出堆栈
while ($right[count($right) - 1] < $row['rgt']) {
array_pop($right);
}
}
// 缩进显示节点的名称
echo str_repeat(' ',count($right)) . $row['name'] . "n";
// 将这个节点加入到堆栈中
$right[] = $row['rgt'];
}
}
?>
复制代码如果你运行一下以上的函数就会得到和递归函数一样的结果。只是我们的这个新的函数可能会更快一些,因为只有2次数据库查询。
要获知一个节点的路径就更简单了,如果我们想知道Cherry 的路径就利用它的左右值4和5来做一个查询。 SELECT name FROM tree WHERE lft < 4 AND rgt >; 5 ORDER BY lft ASC;
复制代码这样就会得到以下的结果:
以下是代码: +------------+
| name |
+------------+
| Food |
| Fruit |
| Red |
+------------+
复制代码那么某个节点到底有多少子孙节点呢?很简单,子孙总数=(右值-左值-1)/2 descendants = (right – left - 1) / 2
复制代码不相信?自己算一算啦。
用这个简单的公式,我们可以很快的算出"Fruit 2-11"节点有4个子孙节点,而"Banana 8-9"节点没有子孙节点,也就是说它不是一个父节点了。
很神奇吧?虽然我已经多次用过这个方法,但是每次这样做的时候还是感到很神奇。
这的确是个很好的办法,但是有什么办法能够帮我们建立这样有左右值的数据表呢?这里再介绍一个函数给大家,这个函数可以将name和parent结构的表自动转换成带有左右值的数据表。
以下是代码:
<?php
function rebuild_tree($parent, $left) {
// the right value of this node is the left value + 1
$right = $left+1;
// get all children of this node
$result = mysql_query("
SELECT name
FROM tree
WHERE parent = '" . $parent . "'
;"
);
while ($row = mysql_fetch_array($result)) {
// recursive execution of this function for each
// child of this node
// $right is the current right value, which is
// incremented by the rebuild_tree function
$right = rebuild_tree($row['name'], $right);
}
// we've got the left value, and now that we've processed
// the children of this node we also know the right value
mysql_query("
UPDATE tree
SET
lft = '" . $left . "',
rgt= '" . $rig3f)"/im', $arr[0], $arra);
if( strlen(@$arra[1])>10 ){
$dpath = str_replace(""","",@$arra[1]);
}
return "<img src='$dpath' width='163' height='113' />";
}
本站原创转载注明: www.111cn.net
php 读取文件内容并保存到数据库本程序的功能是读取目录下的txt 文件,然后保存到数据哦,就这么简单,下面我们就来看看我是如何把txt文件内容保存到mysql数据表的吧。
<?php
include('../boke/inc/re_conn.php');
CheckDir('file/');
function CheckDir($dir_path)//遍历目录
{
if(is_dir($dir_path))
{
if($dir_file=opendir($dir_path))
{
while(($dir_list=readdir($dir_file))!==false)
{
if($dir_list!="." && $dir_list!="..")
{
$title =substr($dir_list,6,strlen($dir_list)-4);
//echo $title;
openFile($dir_path.$dir_list,$title);
}
}
}
else
{
echo($dir_path."<br/>");
}
}
else
{
echo($dir_path."<br/>");
}
}
function savaDate($title,$content)//保存数据
{
$title = str_replace('.txt','',$title);
echo $title;
$content = addslashes($content);
$sql ="insert into fil(title,content,siteindex,filesendid,systype,z_type) values('$title','$content',1,'admin',2,31)";
if( mysql_query( $sql ) )
{
echo 'success<br>';
}
else
{
echo mysql_error();
}
}
function openFile($filePath,$title)//读取文件内容提要
{
if( is_file( $filePath ) )
{
$content = file_get_contents( $filePath );
if( !empty( $content ) )
{
savaDate($title,$content);
}
else
{
;
}
}
}
?>
本站原创转载注明: http://www.111cn.net
我们在作flash 在线拍照片时要保存由flash HTTP_RAW_POST_DATA过来的数据,我们就可把flash发送过来的图片数据保存起来,下面就来看看源码吧。<?php
@session_start();
require_once("../Inc/Conn.php");
require_once("../Inc/function.php");
$filepath = '../userhead/';
$filename = time().mt_rand(10,100);
//$uid = get_id($_SESSION['uname']);
$uid = 14;
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
$im = $GLOBALS["HTTP_RAW_POST_DATA"];
if( !is_dir( $filepath ) )
{
mkdir($filepath,0777);
}
if(file_put_contents($filepath.$filename.'.jpg',$im))
{
$path = 'http://'.$_SERVER['HTTP_HOST'].'/userhead/'.$filename.'.jpg';
savaPath($path);
}
else
{
ShowMsg('result:false');
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
linux中PHP dirname(__FILE__)路径问题解决
在php 中dirname() 函数返回路径中的目录部分,__FILE__而当前运行文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。这是一个魔法变量(预定义常量),在...2016-11-25- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
- 通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31