PDA

View Full Version : كپي كردن يك فايل درون تمامي شاخه هاي ريشه سايت



haniye70
چهارشنبه 15 شهریور 1391, 16:25 عصر
با سلام خدمت همگي دوستان و اساتيد محترم
من دنبال روشي و يا سمپل اماده اي ميگردم كه يك فايل رو توي تمامي شاخه هاي سايت كپي كنه
حالا شايد خود پوشه ها هم توشون يه پوشه ديگه باشه مي خوام توي اونم كپي بشه..!
من بمي خوام يك فايل اچ تي ام ال رو كه كپي رايت سايت خودم هست رو توي همه شاخه ها كپي كنم تا كسي دسترسي به شاخه ها نداشته باشه:لبخند:
دوستان بفرمايد چيكار بايد كنم:لبخندساده:

MMSHFE
پنج شنبه 16 شهریور 1391, 00:05 صبح
<?php
function copier($filename, $path) {
$path = str_replace('\\\\', '/', $path);
if(file_exists($filename) && is_dir($path)) {
copy($filename, $path . '/' . $filename);
$dirs = glob('*.*', GLOB_ONLYDIR);
foreach($dirs as $dir) {
copier($filename, $path . '/' . $dir);
}
}
}

// Example
copier('copyright.html', 'C:\wamp\www\mysite');
?>

موفق باشید.

haniye70
چهارشنبه 22 شهریور 1391, 01:26 صبح
با سلام متشكر از راهنمايي شما
اگر امكان داره يكم راهنمايي كنيد در مورد خط هاي برنامه

MMSHFE
چهارشنبه 22 شهریور 1391, 16:38 عصر
با سلام، این تابع دو پارامتر داره که اولی اسم فایلی هست که میخواین توی همه پوشه ها کپی بشه (که باید کنار اسکریپتی باشه که این تابع رو توش صدا میزنید) و دومی مسیری هست که میخواین عمل کپی از اونجا شروع بشه. وقتی تابع رو صدا میزنید، ابتدا مسیری که بهش دادین رو تغییر میده و بجای \ از / استفاده میکنه تا با ساختار لینوکس که توی همه سیستمهای عامل (حتی ویندوز) پذیرفته هست سازگار بشه. بعد چک میکنه ببینه آیا فایلی که مشخص کردین وجود داره و مسیری که تعیین کردین، واقعاً یک پوشه هست یا اینکه یک فایله و اگه این دو مورد حل بود، فایل مشخص شده رو توی مسیر تعیین شده کپی میکنه و بعد با کمک تابع glob که از توابع داخلی PHP هست، تمام پوشه های فرعی موجود در مسیر مشخص شده رو استخراج میکنه و برای هرکدوم، دوباره تابع رو صدا میزنه. اینطوری درواقع به روش بازگشتی، تابع اینقدر خودش رو صدا میزنه و فایل رو توی پوشه های فرعی داخلی پوشه اصلی کپی میکنه تا دیگه به مرحله ای برسیم که پوشه فرعی نمونده باشه. اونوقت از تابع خارج میشیم. روش صدا زدنش رو هم که بصورت یک مثال گذاشتم براتون.
موفق باشید.