<?php
extract($_REQUEST);
if(isset($_POST['submit']))
{
$get_folder = $_POST['url'];
$q = mysql_query("insert into test (url) values ('$url')");
if($q)
{
copydir("test",$get_folder);
function copydir($source,$destination)
{
if(!is_dir($destination))
{
$oldumask = umask(0);
mkdir($destination, 01777);
umask($oldumask);
}
$dir_handle = @opendir($source) or die("Unable to open");
while ($file = readdir($dir_handle))
{
if($file!="." && $file!=".." && !is_dir("$source/$file")) //if it is file
copy("$source/$file","$destination/$file");
if($file!="." && $file!=".." && is_dir("$source/$file")) //if it is folder
copydir("$source/$file","$destination/$file");
}
closedir($dir_handle);
}
}
}
?>
这是我的代码...它在第14行的error: Call to undefined function copydir()
中显示致命C:\xampp\htdocs\mywork\creating-folder\1.php
但是当我从copydir("test",$get_folder);
复制到closedir($dir_handle);
的单独文件时,它完美地运行但不是$ get_folder需要提供一些静态名称
答案 0 :(得分:2)
使用copy()。
请注意,此功能确实支持开箱即用的目录。链接文档页面上的一个注释中的函数可能会有所帮助:
<?php
function recurse_copy($src,$dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
?>
答案 1 :(得分:0)
// Will copy foo/test.php to bar/test.php
// overwritting it if necessary
copy('foo/test.php', 'bar/test.php');
答案 2 :(得分:0)
这有效:
foo();
function foo() { ... }
这不会:
if (...) {
foo();
function foo() { ... }
}
这将:
if (...) {
function foo() { ... }
foo();
}
一般情况下,您需要声明 之前 。例外是普通的,全局定义的函数,如第一个例子中所示;在执行之前的解析步骤中正在处理这些问题。由于您的函数声明位于if
语句内并因此是有条件的,因此需要首先评估if
条件,从而评估整个代码。在评估代码时,您正在尝试调用尚未声明的函数。