نمایش نتایج 1 تا 6 از 6

نام تاپیک: توضیح در مورد تابع fgets

  1. #1
    کاربر تازه وارد آواتار Gold_cpp
    تاریخ عضویت
    مهر 1389
    محل زندگی
    github
    پست
    90

    توضیح در مورد تابع fgets

    سلام دوستان
    یک کد ساده داریم که بعد از اینکه فایل salam.php رو باز کرد تا زمانی که به پایان فایل مذکور نرسیدیم محتویات آن را چاپ میکند برای درک بهتر این که چه عملی انجام میشود اومدم موقع پرینت کردن یک تک
    <br /> اضافه کردم

    <?php
    $filename = "salam.php";
    $fp = fopen( $filename, "r" ) or die("Couldn't open $filename");
    while ( ! feof( $fp ) )
    {
    $line = fgets( $fp, 7 );
    print "$line<br>"; //print "$line<br>";
    }
    ?>

    حالا که توی سورس صفحه چاپ شده نگاه میکنم میبینم که اول همه لاین ها به جز اولین چاپ تک <br />
    اضافه شده است
    دوستان میتونن علت رو بهم توضیح بدن ؟؟
    کد HTML:
    <html>
    <head>
    </head>
    <body>
    <!-- in avalin line hast ke chap shode ! -->
    <html><br />
    <br /><head><br />
    <br /></head<br />>
    <br /><body><br />
    <br /><form <br />action<br />="sala<br />m.php"<br /> metho<br />d="pos<br />t">
    <br />    <i<br />nput t<br />ype="s<br />ubmit"<br /> value<br />="goTo<br />Submit<br /> !"/>
    <br />
    <br />      <br />  <sel<br />ect na<br />me="co<br />mpany[<br />]" mul<br />tiple=<br />"multi<br />ple">
    <br />
    <br />      <br />  <opt<br />ion>IB<br />M</opt<br />ion>
    <br />      <br />  <opt<br />ion>SO<br />NY</op<br />tion>
    <br />
    <br />      <br />  <opt<br />ion>SU<br />MSONG<<br />/optio<br />n>
    <br />      <br />  <opt<br />ion>LG<br /></opti<br />on>
    <br />    </<br />select<br />>
    <br /></form<br />>
    <br /><?php
    <br />
    <br />if ( i<br />s_arra<br />y( $_P<br />OST['c<br />ompany<br />'] ) )<br />
    <br />{
    <br />    ec<br />ho "<s<br />elect><br />\n";
    <br />	forea<br />ch ( $<br />_POST[<br />'compa<br />ny'] a<br />s $va <br />)
    <br />    {
    <br />
    <br />      <br />  prin<br />t "<op<br />tion>$<br />va</op<br />tion>"<br />;
    <br />    } <br /> 
    <br />	echo <br />"</sel<br />ect>";<br />
    <br />}
    <br />?>
    <br /></body<br />>
    <br /></html<br />><br /></body>
    </html>
    این هم محتویات داخل فایل salam.php
    کد HTML:
    <html>
    <head>
    </head>
    <body>
    <form action="salam.php" method="post">
        <input type="submit" value="goToSubmit !"/>
            <select name="company[]" multiple="multiple">
            <option>IBM</option>
            <option>SONY</option>
            <option>SUMSONG</option>
            <option>LG</option>
        </select>
    </form>
    <?php
    if ( is_array( $_POST['company'] ) )
    {
        echo "<select>\n";
    	foreach ( $_POST['company'] as $va )
        {
            print "<option>$va</option>\n";
        }  
    	echo "</select>";
    }
    ?>
    </body>
    </html>


  2. #2

    نقل قول: توضیح در مورد تابع fget

    این کد رو امتحان کنید ببینید درست میشه یا نه؟

    $filename = 'salam.php';
    $fp = fopen($filename, 'r') or die("Couldn't open {$filename}");
    echo '<pre>'.PHP_EOL;
    while (!feof($fp)) {
    $line = fgets($fp);
    echo $line.PHP_EOL;
    }
    echo '</pre>'.PHP_EOL;
    fclose($fp);

    برای من که درست کار کرد.

  3. #3
    کاربر تازه وارد آواتار Gold_cpp
    تاریخ عضویت
    مهر 1389
    محل زندگی
    github
    پست
    90

    نقل قول: توضیح در مورد تابع fgets

    ممنون دوست عزیز ولی نه !
    ببینید این خط چی میگه :
    $line = fgets( $fp, 7 );
    میگه فایلی که fopen اون رو باز کرده رو بگیر و 7 تا کاراکتر برو جلو(توی همون خط) بعد دستور بعد میگه که
    print "$line<br />"
    اون 7 تا کاراکتر را که خواندی چاپ کن و بعدش هم یک <br /> بذار;
    اولین باری که چاپ میشه این صجبت من رو درست اجرا میکنه (برای درک بهتر ctrl + u همون فایل چاپ شده را بزنید تا سورس رو ببینید)
    ولی از خط بعدی به ابتدای هر لاین یک تک <br /> اضافه میکند
    علتش چیه ؟؟

  4. #4

    نقل قول: توضیح در مورد تابع fgets

    باز هم برای من درست کار کرد (همون کدی که خودتون گذاشتین). شاید مشکل از جای دیگه باشه. اگه میشه خود فایلها رو ضمیمه کنید تا ببینیم مشکل چیه؟

  5. #5
    کاربر تازه وارد آواتار Gold_cpp
    تاریخ عضویت
    مهر 1389
    محل زندگی
    github
    پست
    90

    نقل قول: توضیح در مورد تابع fgets


    فایل را آپلود کردم
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip php.zip‏ (25.6 کیلوبایت, 4 دیدار)

  6. #6

    نقل قول: توضیح در مورد تابع fgets

    خوب عزیز شما خودتون دارین 7 کارکتر به 7 کارکتر میخونید و آخر هر خوندن، br درج میکنید، بعد میگین brها از کجا میاد؟ 7, رو از دستور fgets حذف کنید تا درست بشه. موفق باشید. ضمناً اگه میخواین سورس کد رو نشون بدین، از htmlspecialchars هم استفاده کنید:
    کد HTML:
    <html>
    <body>
    <?php
        $fp = fopen("ha.php","r") or die ("can't open file :( ");
        while (!feof($fp)){
            $line = fgets($fp);
            echo htmlspecialchars($line).'<br />'.PHP_EOL;
        }
        fclose ($fp);
    ?>
    </body>
    </html>
    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •