سؤال

لدي مجموعة من fwrites التي الكتابة إلى ملف نصي. ومع ذلك، يبدو أن السطر الجديد (" n") الذي أريده بعد أن يضع كل صف أبدا نظرا لأن المجموعة التالية من البيانات تمسك بالسطر الأخير الذي يتدرج هذا الرمز في ملف النص:

while(odbc_fetch_row($result)){

        if($counter==0){

            $counter3 = 1;

            foreach($column_names as $column_names2){

                if($length!=$counter3){

                    fwrite($write_file, '"'.$column_names2.'",');

                }else{

                    fwrite($write_file, '"'.$column_names2.'"');

                }

                $counter3++;

            }

            //echo 'Never gets executed???';
            fwrite($write_file, "\n");

            $counter = 1;

        }

أي أفكار حول ما يحدث؟

لقد وضعت في " n n" كاختبار سريع. ما هو غريب هو إذا رأيت في هذا في المفكرة، فلا يزال متماثل معا، ولكن إذا رأيت ذلك في الدفتر، فهذا يظهر استراحة خط؟!

هل كانت مفيدة؟

المحلول

كما اقترح آخرون، من المحتمل أن يتم ترميز خطوط نيو مربعات على نظام التشغيل الخاص بك.

ومع ذلك، بدلا من إخراج " r n" خاصا بوضوح، أقترح عليك أن تحاول فتح الملف في وضع النص (بدلا من ثنائي). تتمثل ميزة الافتتاح في وضع النص في أن النظام سيؤدي إلى تحويل نهايات السطر إلى أي تنسيق مناسب لهذا نظام التشغيل. بهذه الطريقة، يجب أن يكون التعليمات البرمجية الخاصة بك أكثر محمولة، وينبغي أن يعمل (نأمل) بشكل صحيح على Windows / Linux / Mac إلخ.

على افتراض أنك تستخدم PHP، يمكنك تمرير "علامة الترجمة وضع النص" ('T') في FOPEN.

نصائح أخرى

الرمز يبدو موافق

هل يمكن أن تنبيهك في الملف باستخدام تطبيق Windows لا يمكن التعامل معه \n فواصل الأسطر؟ ماذا يحدث إذا بديلا \n بواسطة شيء آخر؟

إنها ليست مشكلة في التعليمات البرمجية الخاصة بك، ولكن مشكلة في المشاهد الخاص بك. سوف تغيير المشاهدين حل مشكلتك. تغيير خطوط الخط إلى شيء يفهم المشاهد الخاص بك ( r n) حل المشكلة أيضا. الشيء المهم هو كتابة المحطة النهائية في طريقة أن البرنامج الذي سيستهلك لاحقا سوف يفهمه. إذا كان مجرد المشاهد، ثم قم بتغيير المحطة الطرفية. إذا كان برنامج آخر يتوقع مجرد حرف جديد، فقم بتغيير المشاهدين.

اقرأ هذا حول خطوط نيو لا على مختلف نظام التشغيل.

يشير Windows إلى سطر جديد باستخدام CR + LF (بمعنى آخر \r\n) في حين أنظمة UNIX (مثل) استخدام فقط LF (\n).

CR = عودة النقل
LF = خط الأعلاف

لذلك ربما يجب أن تستخدم \r\n. وبعد لكن البرامج الأخرى مثل الدفتر يبدو أن تفهم \nعلى نحو أيضا.


أفضل طريقة هي، أنت تستخدم PHP ثابت PHP_EOL الذي يستخدم مؤشر نهاية نظام التشغيل الحالي، البرنامج النصي قيد التشغيل:

fwrite($write_file, PHP_EOL);

يمكنك محاولة استخدام \r\n

حاول استخدام نهايات خط CRLF:

"\r\n"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top