امروزه بیشتر محتوای منابع وب به صورت پویا توسط اسکریپت های سمت سرور تولید می شود. اما از این طریق ، بیشتر اطلاعات متنی نمایش داده می شود (طرح بندی صفحه ، شیوه نامه ها ، نقشه سایت). تصاویر ، موسیقی ها ، فیلم ها ، بایگانی ها ، به طور معمول ، به صورت فایلهای استاتیک در سرور قرار دارند. با این وجود ، گاهی تولید داده های مشابه با استفاده از اسکریپت ضروری می شود. بنابراین ، اگر نیاز به نمایش یک تصویر ثابت دارید ، می توانید آن را کاملاً در اسکریپت وارد کنید.
ضروری است
توانایی ایجاد یا ویرایش اسکریپت های سرور
دستورالعمل ها
مرحله 1
این تصاویر را به عنوان متن ، بخشی از کد برنامه در اسکریپت قرار دهید. از راحت ترین ساختارهای داده و ساختارهای نحوی استفاده کنید. انتخاب معمولاً با توجه به قابلیت های زبان برنامه نویسی مورد استفاده تعیین می شود. بنابراین ، در بسیاری از موارد مناسب است که یک عکس را به عنوان یک رشته کاراکتر منظم در یک اسکریپت وارد کنید ، محتوای آن داده های تصویر است که با الگوریتمی مانند Base64 رمزگذاری شده است. در PHP ممکن است به این شکل باشد (تصویر.
گام 2
تصویر را برای خروجی آماده کنید. در صورت لزوم اطلاعات اصلی را رمزگشایی کنید. شما باید یک بافر حاوی داده های باینری تصویر را دریافت کنید. به عنوان مثال ، در PHP ، رمزگشایی رشته داده شده در مرحله اول ممکن است به صورت زیر باشد: $ text = base64_decode ($ str)؛
مرحله 3
در سرآیند پاسخ HTTP سرور ، یک قسمت حاوی داده ها در مورد طول بدن پاسخ (اندازه تصویر نمایش داده شده) اضافه کنید. با استفاده از توابع یا روشهایی که طول آرایه ها ، رشته ها و … را برمی گرداند ، دامنه را تعیین کنید. به عنوان مثال: سرآیند ('Content-length:'.strlen ($ text))؛
مرحله 4
یک قسمت به سربرگ پاسخ HTTP سرور اضافه کنید که نوع mime محتوای منتقل شده را نشان می دهد. به عنوان مثال: هدر ('نوع محتوا: تصویر / gif') ؛ نوع محتوا باید از قبل مشخص باشد (براساس قالب تصویر اصلی تعیین می شود).
مرحله 5
اگر به جای اینکه توسط مرورگر نمایش داده شود ، مجبورید تصویر را ذخیره کنید ، قسمت مناسب را به هدر پاسخ اضافه کنید: header ("Content-Disposition: attachment؛ filename = my_image.gif")؛
مرحله 6
اگر می خواهید از ذخیره تصویر توسط مرورگر جلوگیری کنید ، قسمتهای Pragma و cache-Control را با مقادیر مناسب در پاسخ HTTP وارد کنید: هدر ("Pragma: no-cache") ؛ هدر ("Cache-Control: no) -cache ، باید دوباره اعتبار سنجی شود ، ذخیره نشود ") ؛ سرصفحه (" Cache-Control: pre-check = 0، post-check = 0 "، false) ؛ همچنین ارزش آن است که تاریخ آخرین تغییر و انقضا داده شود تاریخ منبع. در این حالت ، مورد دوم باید بعداً باشد: header ("انقضا: دوشنبه ، 4 ژانویه 1993 00:00:01 GMT") ؛ header ("Last-اصلاح شده:".gmdate ("D، d MYH: i: s ")." GMT ")؛
مرحله 7
بدنه پاسخ HTTP سرور را که داده های تصویر است تشکیل دهید. از توابع یا روش های اشیا استفاده کنید که خروجی داده های باینری را بدون پردازش اضافی فراهم می کنند. به عنوان مثال: printf ('٪ s'، $ text)؛