بستن کشویی
منوی کاربری
شاخه های مطالب

وبلاگ کاربران

amin(دوشنبه، ۱۵ شهريور، ۱۳۸۹)
خوش اومدید اما hidden نیومدید...

james(دوشنبه، ۱۵ شهريور، ۱۳۸۹)
@پاسخ بهhidden : حتما خوش اومدبد.:)...

hidden(دوشنبه، ۱۵ شهريور، ۱۳۸۹)
من خوش اومدم :D...

alborz89(يکشنبه، ۱۴ شهريور، ۱۳۸۹)
یک سایت خوب...

pfndesigen(يکشنبه، ۱۴ شهريور، ۱۳۸۹)
دامین farsnuke.ir و farshosting.ir را می فروشم...

pfndesigen(شنبه، ۱۳ شهريور، ۱۳۸۹)
@پاسخ بهamirhosein : چرا منتظر بودم هدرش تمام بشه تا ثبتش کنم ...

amirhosein(شنبه، ۱۳ شهريور، ۱۳۸۹)
@پاسخ بهpfndesigen : موفق باشید. در گالری سایتهای نیوک لرنی درج نمی کنید...

pfndesigen(جمعه، ۱۲ شهريور، ۱۳۸۹)
@پاسخ بهjaber : مرسی...

jaber(جمعه، ۱۲ شهريور، ۱۳۸۹)
@پاسخ بهpfndesigen : تبریک می گم...

pfndesigen(پنج شنبه، ۱۱ شهريور، ۱۳۸۹)
اگر کاری را انجام دادید و نتیجه را بقیه دیدند , خیلی بیشتر تاثیر دا...


شما هم بنویسید

نظرسنجی

آموزش خواندن متن از درون فایل در PHP

PHPيکشنبه، 8 آذر، 1388 605Aneeshtan


امروز با هم به آموزشی درمورد چگونگی خواندن خطوط نوشتاری از درون یک فایل  می پردازیم . در کل خواند فایل ها در زبان php یکی از مبحث های  جنجالی و حساس است که اگر  به درستی  انجام نشود ممکن است آسیب هایی به سایت مقصد بزند . از این رو آموزش این مورد بسیار پراهمیت است .  در اولین نگاه برای انجام عملیات خواندن خطوط  از فایل   نزدیک ترین   ابزار   تابع  file() به ذهن خواهد رسید .  مشکل استفاده از این تابع  خواندن کل یک فایل به صورت مقدار آرایه ای array  است از این رو در حافظه سرور ( لوکال )  هر عملیات زیر دست بر روی آرایه  مانند foreach()  منجر به  پردازش دوبرابری  آن  خواهد شد  برای مثال خواندن  فایل log  دو گیگی  حافظه ای برابر با 4 گیگ نیاز خواهد داشت که برای خواندن چندصد خط متن بی جهت خواهد بود .

با ایجاد یک حلقه ی  کامل در پردازش فایل و قطع حلقه زمانی که  خط مورد نظر در فایل یافت شد  حافظه مورد استفاده متمرکز به همان یک خط در فایل خواهد شد .
 
در ادامه  مطلب به  مثالی عملی از  عملیات خواندن متن از فایل خواهیم پرداخت


بخش تابع نویسی :


<?php

/**
 *
 * Read a line number from a file
 *
 * @param    string    $file    The path to the file
 * @param    int    $line_num    The line number to read
 * @param    string    $delimiter    The character that delimits lines
 * @return    string    The line that is read
 *
 */
function readLine($file$line_num$delimiter="n")
{
    
/*** set the counter to one ***/
    
$i 1;

    
/*** open the file for reading ***/
    
$fp fopen$file'r' );

    
/*** loop over the file pointer ***/
    
while ( !feof $fp) )
    {
        
/*** read the line into a buffer ***/
        
$buffer stream_get_line$fp1024$delimiter );
        
/*** if we are at the right line number ***/
        
if( $i == $line_num )
        {
            
/*** return the line that is currently in the buffer ***/
            
return $buffer;
        }
        
/*** increment the line counter ***/
        
$i++;
        
/*** clear the buffer ***/
        
$buffer '';
    }
    return 
false;
}
?>

 

مثال عینی استفاده

 


<?php

/*** make sure the file exists ***/
$file 'my_file.txt';

if( 
file_exists$file ) && is_readable$file ) )
{
    echo 
readLine($file6);
}
else
{
    echo 
"Cannot read from $file";
}
?>

 

 
ایده ی گشتن  درون یک فایل و یافتن  شماره خط  مورد نظر  پردازش حافظه مناسبی از سیستم را در برخواهد داشت . اما  بهتر است بگذاریم  زبان php  این عملیات را برای ما انجام دهد . در زبان  php   تکنیک SPL File Object  چنین کاری را برای شما خواهد کرد .
 
 

<?php

/*** the file to read ***/
$file 'foo.txt';

        
/**
 *
 * Read a line number from a file
 *
 * @param    string    $file    The path to the file
 * @param    int    $line_num    The line number to read
 * @return    string    The line that is read
 *
 */
function readLine$file$line_number )
{
        
/*** read the file into the iterator ***/
        
$file_obj = new SplFileObject$file );

        
/*** seek to the line number ***/
        
$file_obj->seek$line_number );

        
/*** return the current line ***/
        
return $file_obj->current();
}

echo 
readLine$file345678 );

?>
 
 
 
این مقاله برای افرادی مناسب است که به زبان php تا حدودی تسلط کافی دارند
موفق باشید
نیوک لرن

آموزش php ,خواندن متن از فایل ,log,php,

لذت اشتراک گذاری

ارسال به بلینک لیست ارسال به خوشمزه ارسال به ديگ ارسال به فرل ارسال به ردديت ارسال به تکنوراتي ارسال به یاهو مای وب ارسال به 100 درجه کلوب ارسال به بالاترین ارسال به دنباله ارسال به مهندس ارسال به استامبل ارسال به نتوز ارسال به فرندفید ارسال به تویتر ارسال به فیس بوک ارسال به سیمپی ارسال به Windows Live اشتراک گذاری در گوگل ارسال لینک از طریق یاهو مسنجر برای دوستان ارسال به سرویسهای دیگر


اختیارات

 چاپ این مطلب چاپ این مطلب



Comments

مدت زمان ایجاد صفحه : 0.07 ثانیه
تعداد ارتباط : 42
حافظه درگیر :2.3757663010089
Nukelearn USV © 2009-2011 Nukelearn