x0r
November 25th, 2012, 22:59
سلام دوستان
من یه برنامه نوشتم که بهش یه اسم فایل و پسوند و یک مسیر میدم
برنامه من به صورت بازگشتی میاد تمامی فایل های توی اون مسیر و زیر شاخه ها رو با پسوند مورد نظر من بررسی می کنه و توی یه آرایه ذخیره می کنه ، بعد من با یه حلقه میام و اسم فایل ها رو توی آرایه بیرون میکشم و با اسمی که خودم به برنامه ارسال کردم مقایسه می کنم و اگه یکی بود مسیر اون فایل مورد نظر رو پرینت می کنم
کد من مشکل داره و همیشه رشته خالی پرینت می کنه
از دوستان کسی می تونه مشکل این کد رو پیدا کنه
نکته : من زیاد سوتی شدید میدم لطفا کد رو دقیق نگاه کنید :65:
<?php
function get_name($str)
{
$path_parts = pathinfo($str);
//echo $path_parts['dirname'], "\n";
//echo $path_parts['basename'], "\n";
//echo $path_parts['extension'], "\n";
//echo $path_parts['filename'], "\n"; // since PHP 5.2.0
return $path_parts['filename'].".". $path_parts['extension'];
}
//************************************************** ************
$pwd[500];
$i=0;
//************************************************** ************
//find matching string and save into array
if ( !empty($_POST['path']) && !empty($_POST['nam']) && !empty($_POST['ext']) ){
$it = new RecursiveDirectoryIterator($_POST['path']);
$allowed=array($_POST['nam']);
foreach(new RecursiveIteratorIterator($it) as $file) {
if(in_array(substr($file, strrpos($file, '.') + 1),$allowed)) {
//echo $file . "<br/> \n";
//echo $file."<br/>";
$pwd[$i]=$file;
//echo $pwd[$i]."<br/>";
$i++;
}
}
//************************************************** ************
$find=$_POST['nam'].".".$_POST['ext'];
for ($j=0;$j<count($pwd)-1 ;$j++){
if (!strcmp(get_name($pwd[$j]),$find)) {
print "<br/> Founded at : ". $pwd[$i];
}}}
else
{
?>
<html>
<head>
<head>
<body>
<form action="" method="POST">
Name : <input type="text" name="nam"> <br/>
EXT :   <input type="text" name="ext"> <br/>
Path :   <input type="text" name="path"> <br/><br/>
<input type="Submit" value="Search">
</form>
</body>
</html>
<?php
}
?>
من یه برنامه نوشتم که بهش یه اسم فایل و پسوند و یک مسیر میدم
برنامه من به صورت بازگشتی میاد تمامی فایل های توی اون مسیر و زیر شاخه ها رو با پسوند مورد نظر من بررسی می کنه و توی یه آرایه ذخیره می کنه ، بعد من با یه حلقه میام و اسم فایل ها رو توی آرایه بیرون میکشم و با اسمی که خودم به برنامه ارسال کردم مقایسه می کنم و اگه یکی بود مسیر اون فایل مورد نظر رو پرینت می کنم
کد من مشکل داره و همیشه رشته خالی پرینت می کنه
از دوستان کسی می تونه مشکل این کد رو پیدا کنه
نکته : من زیاد سوتی شدید میدم لطفا کد رو دقیق نگاه کنید :65:
<?php
function get_name($str)
{
$path_parts = pathinfo($str);
//echo $path_parts['dirname'], "\n";
//echo $path_parts['basename'], "\n";
//echo $path_parts['extension'], "\n";
//echo $path_parts['filename'], "\n"; // since PHP 5.2.0
return $path_parts['filename'].".". $path_parts['extension'];
}
//************************************************** ************
$pwd[500];
$i=0;
//************************************************** ************
//find matching string and save into array
if ( !empty($_POST['path']) && !empty($_POST['nam']) && !empty($_POST['ext']) ){
$it = new RecursiveDirectoryIterator($_POST['path']);
$allowed=array($_POST['nam']);
foreach(new RecursiveIteratorIterator($it) as $file) {
if(in_array(substr($file, strrpos($file, '.') + 1),$allowed)) {
//echo $file . "<br/> \n";
//echo $file."<br/>";
$pwd[$i]=$file;
//echo $pwd[$i]."<br/>";
$i++;
}
}
//************************************************** ************
$find=$_POST['nam'].".".$_POST['ext'];
for ($j=0;$j<count($pwd)-1 ;$j++){
if (!strcmp(get_name($pwd[$j]),$find)) {
print "<br/> Founded at : ". $pwd[$i];
}}}
else
{
?>
<html>
<head>
<head>
<body>
<form action="" method="POST">
Name : <input type="text" name="nam"> <br/>
EXT :   <input type="text" name="ext"> <br/>
Path :   <input type="text" name="path"> <br/><br/>
<input type="Submit" value="Search">
</form>
</body>
</html>
<?php
}
?>