فوت کوزه گری!
گاهی یک فوت کوزه گری رو دونستن میتونه کلی بدادت برسه و از کلی دردسر نجاتت بده! یه قابلیت که توی فایلهای PHP هست اینه که اگه فایل PHP شما قرار نیست که ادامه داشته باشه یعنی قرار نیست بعد از اینکه کد تموم شد،ادامه فایل به صورت HTML باشه، اونوقت میتونید از گذاشتن علامت ?> در انتهای کد خودداری کنید. راستشو بخواید اول که این قابلیت رو دیدم کلا نفهمیدم به چه دردی میخوره یا اگه بیشتر راستشو بخواید به خودم گفتم این قابلیت اصلا احمقانه و به درد نخوره (نتیجه اخلاقی این پست اینه که زود قضاوت نکنید! ) ولی امشب فهمیدم که نخیر! اینطورا هم نیست!
قضیه اینطوریه که یه کدی دارم مینویسم که قراره یه تصویر رو از یه فایل بخونه و به خروجی بده (تابع readfile() از اون توابعیه که بعضیا کمتر میشناسنش!!) همه چی درست بود (البته در ظاهر) اما فایرفاکس خروجی رو نشون نمیداد. نتیجه رو که بررسی میکردم متوجه شدم که Content-Type هم درست ارسال میشه، ولی نمایش داده نمیشه. بارها و بارها کد رو بررسی کردم و هرچه بیشتر چک کردم کمتر نتیجه گرفتم.
تا بالاخره خروجی رو با یه ویرایشگر باینری (HexEditor ) چک کردم. نتیجه دو تا کاراکتر Space در ابتدای فایل تصویر بود. صفحات دیگه رو هم چک کردم. اونجا ها هم این دو تا کاراکتر اضافه بود، ولی خوب html مشکلی نداره با این فااصله های اضافی. فایلهای include شده رو یکی یکی بررسی کردم و آخر سر هم خرابکار، پروژه jDate خودم بود. توی یکی از فایلها بعد از پایان کد و تگ پایان PHP (یا همون ?> ) دو تا فاصله خورده بود. این فایل بعد از آغاز session و ارسال header ها استفاده شده بود و به همین دلیل مشکل خودشو توی اونها نشون نداده بود. جالبتر اینکه یه فایل دیگه هم پیدا کردم که دقیقا این مشکل رو داشت و یه Enter اضافه داشت، که خیلی پیش میاد تو یه ویرایشگر این اتفاق بیفته. تو همه فایلهای دوره ویندوزم هم این مشکل کم و بیش بود :) نتیجه گیری اینکه من از این به بعد کل فایلهایی که با کد PHP تموم میشن رو وقتی بنویسم، خصوصا فایلهایی که قرار نیست خروجی داشته باشن مثل همین کتابخونه ها، به همین صورت و بدون بستن کد PHP مینویسم، توصیه میکنم شما هم همین کارو بکنید. به دردسرش نمیرزه،این یه دفعه دقیقا ۴۵ دقیقه وقتمو گرفت!!
نکته دوم هم اینکه این پست اولین پست من با عینکه! دو سه روز پیش عینکی شدم!! :)
هیچ دنبالکی فرستاده نشدهاست.
در 3 ماه پیش - ۱۲ نظر
بازی مافیا رو اولین بار وقتی دانشجو بودیم انجام دادم و متاسفانه چون توی فصل امتحانات بود و منم فارغ التحصیل زیاد قاطی قضیه نشدم :) چند وقت پیش، دوست خوبم ایمان، سعی کرد بچه ها رو جمع کنه برای بازی تو Gtalk و همون موقع تصمیم گرفتم که این بازی رو به صورت یه…
در 6 ماه پیش - ۶ نظر
– این فقط یه معرفی ساده یه پروژه است نه راهنمای کاملش. یکی از معروفترین سایتهای فعلی، فیسبوکه و شکی در این نیست (نمیدونم با وجود گوگل پلاس وضع همینطوری میمونه یا نه؟). ولی این سایت همینجوری که تبدیل نشده به اینی که الان هست! یک تیم برنامه نویسی قدرتمند هم پشت این پروژه هست…
در 7 ماه پیش - ۵ نظر
امروز درگیر یک کد بودم شبیه این : به نظر شما خروجیش چیه؟؟؟ یعنی اصلا چیزی باید چاپ بشه یا نه؟ من معتقدم که نباید چیزی چاپ بشه. یعنی شرط if اصلا درست نیست که بخواد برسه به echo ولی مساله مسخره اینه که isset میگه این ایندکس وجود داره و -برداشت شخصی من اینه…
در 11 ماه پیش - ۲ نظر
یکی از اصولی که سعی میکنم هنگام طراحی رعایت کنم، استفاده نکردن هرچه بیشتر!!! از زبان فارسیست. یعنی سعی میکنم تحت هیچ شرایطی توی کد حتی یک کلمه به زبانی غیر از انگلیسی، خصوصا فارسی ننویسم. علت سادست، فارسی میتونه باعث مشکلات زیادی در زمان کد نویسی بشه خصوصا مشکلاتی که معمولا ویرایشگرهایی که من…
در 1 سال پیش - ۱۱ نظر
یه پرسشنامه برای گرفتن چند تا برنامه نویس PHP طرح کرده بودم (بنا به خواست یه کارفرما). چند تا سوال در زمینه PHP هم پرسیده بودم، یکیش همون قضیه اولویت عملگرها بود و دقیقا کدی که اینجا هست رو پرسیده بودم خروجیش چی میشه، که هیچ کس درست جواب نداده بود. (برام زیاد دور از…
در 1 سال پیش - ۴ نظر
توی نوشته قبلی، درباره عبارات با قاعده نوشتم، و حالا میخوام ادامش بدم. کاراکتر نقطه “.” فرض کنید میخواید تمام کلماتی که در ابتداشون h داره و در انتهاشون llo رو پیدا کنید. مثلا hello ، یا hallo یا hollo یا هر ترکیب دیگری. اینطوری میتونید از کاراکتر نقطه استفاده کنید. به عبارتی کاراکتر نقطه…
در 1 سال پیش - ۹ نظر
عبارات با قاعده، به نظر خیلی ها ترسناکه. به نظر خودم هم بود. تا اینکه یه کتاب خوندم دربارش و تازه پی بردم به قدرتش. (این کتاب مورد نظره : Mastering Regular Expressions نوشته Jeffrey E. F. Friedl ، منتها من نسخه ای رو خوندم که غیر قانونی دانلود شده بود و به اشتراک گذاشتن این…
در 1 سال پیش - یک نظر
حتما دو تا تابع echo و print رو میشناسید. این دو تا عملا یه کار رو انجام میدن. پس چرا شدن دو تا تابع؟ تفاوتشون چیه؟؟ خوب من سعی میکنم که توضیح بدم این قضیه رو. شباهتها هر دو تابع نیستن :) جزئی از ساختار زبانی هستن. یعنی میشه بدون پرانتز فراخوانیشون کرد ولی استفاده…
در 1 سال پیش - بدون نظر
توی ویندوز کوچک و بزرگ بودن حروف در اسم فایلها تاثیری نداره. ولی توی لینوکس این یه کم متفاوته، مثلا تو ویندوز TEST.php و test.php یکی هستن اگه به عنوان اسم فایل استفاده بشن. خودمونی تر! تو یه فولدر نمیشه دو تا فایل رو همزمان به این دو اسم ایجاد کرد، ولی تو لینوکس میشه.…
در 1 سال پیش - ۲ نظر
گاهی لازم میشه که شما میخواید از توی یه لیست از کلمات یه سری کلمه رو که شبیه تر هستن به کلمات دیگه، جدا کنید. توی PHP یه سری تابع برای اینکار معرفی شده (و البته MySQL هم تابعی داره براش) ولی متاسفانه جز یکی از این توابع باقی برای زبان فارسی کار نمیکنن. من…
در 1 سال پیش
سلام
از اینکه منو راهنمایی می کنید خیلی ممنونم
حتما بهتون عینک میاد;)
از این به بعد سوالام رو تو کامنتام میزارم البته سعی می کنم بی ربط به موضوع مطالبتون نباشه.
موافقید یا نه :
0
0