عنوان مقاله :

کتابخانه پی اچ پی - CssToInlineStyles

گردآوری و تالیف : محمد صادق زحمتکش
تاریخ انتشار : 11 تیر 1396
دسته بندی ها : پی اچ پی

معرفی
 همان طور که میدانید برای ساخت یک ایمیل در قالب HTML  ،کد‌های CSS باید بصورت inline نوشته شود. CssToInlineStyles این کار را به راحتی برای‌مان انجام خواهد داد. کافیست تا کد های خود را در یک فایل css  بنویسید تا این کتابخانه با استفاده از انتخاب‌گرها، کد‌ها را به تگ‌های  مناسب خود اختصاص دهد.در واقع کار این کتابخانه تبدیل فایل های css به صورت inline میباشد که قادر میسازد که ما بتوانیم در محیط کاربری تحت وب ایمیل هایی در قالب HTML برای کاربران و جامعه ی هدف خود ارسال نماییم.


use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles; 
// create instance 
$cssToInlineStyles = new CssToInlineStyles(); 
$html = file_get_contents(__DIR__ . '/examples/sumo/index.htm'); 
$css = file_get_contents(__DIR__ . '/examples/sumo/style.css'); 
// output echo $cssToInlineStyles->convert( $html, $css );

نحوه ی ارسال ایمیل با قالب html

 حتما برای شما ایمیل هایی با قالب های html,css برای شما ارسال شده است،اماچگونه این ایمیل ها ارسال میشوند و چگونه میتوانیم در پروژه ی خود سیستمی طراحی کنیم که بتوانیم از طرف مدیر سایت ایمیلی با این قالب به کاربران و جامعه ی هدف خود ارسال نماییم؟برای پاسخ به سوالات بالا با ادامه ی این مقاله همراه باشید:

ایمیل هایی که با الگوها و قالب های html برای ما ارسال میشوند به صورتی است که ایمیل یا با نرم افزار خاص و یا به صورت مستقیم از سایت برای شما ارسال میشوند.اکثر نرم افزار های ایمیل مارکتینگ از این قابلیت نیز بهره مند هستند.دقت کنید اگر در ایمیلی که در سایت خود تعریف میکنید به صورت عادی از تگ های غیر استاندارد در ایمیل استفاده کنید در سرویس های دریافت ایمیل گوناگون به شکلی غیر از شکل درخواستی شما به نمایش در خواهد آمد.

همان طور که می دانید اپراتور های ایمیل هر کدام به نحوی که برای سرویس خود تعیین کرده اند کد های HTML  و محتوای Email  را Render  و پردازش میکنند.این امر باعث میگردد که در اپراتور های مختلف برخی از تگ ها و کلاس های css  به خوبی نمایش داده نشوند در نتیجه ایمیل شما به خوبی دیده نمیشود.در واقع زیاد به نحوه پردازش CSS  ها توسط اپراتور های ایمیل نمیتوان اعتماد کرد و ممکن است Layout  شما که توسط  تگ های  div  ویا هر تگی که باCSS  به آن Style  می دهید چیدمان بهم ریخته یا نادرستی داشته باشد.حال برای این که تمام اپراتور های ایمیل بتوانند ایمیل ارسالی شما را پردازش و نمایش دهند باید از تگ هایی استفاده نمایید که اکثر اپراتورها به عنوان یک قالب استاندارد میتوانند آنرا ترجمه و پردازش کنند. قالب ایمیل و چیدمان و Layout آن می بایست فقط با جدول و تگ های table, td, tr, tbody, tfoot, thead, th و خصوصیات عناصر جداول صورت گیرد برای مثال colspan, rowspan  و دیگر خصوصیات که جداول می پذیرند ونباید با استفاده از Div  و دیگر تگ های HTML5  این کار را انجام داد.همچنین ترجیحا به جای استفاده از colspan  و rowspan  از جداول تو در تو استفاده کنید.این کار باعث میشد تا اپراتور های ایمیل به صورت استاندارد بتوانند تگ های شمارا ترجمه و متن ایمیل شمارا چاپ نمایند.

یکی دیگر از اشکالات رایج این است که برخی اپراتور های Email  تگهای Style  شما را نادیده میگیرند. و آن را از صفحه یا حذف می کنند یا پردازش نمیکنند. برای حل این مشکل باید تمام CSS های موجود در ایمیل را به صورت Inline  در بین کدهای HTML  بنویسید. اما این کار بسیار طاقت فرساست و وقت گیر . یک راه حل راحت وجود دارد تمام  CSSهای خودتان را در تگ Style بنویسید و بعد از اتمام کار و نهایی شدن جهت ارسال فایل HTML  ای که ساختید را در سایت http://premailer.dialect.ca  آپلود کنید تا این Web Application  تمام CSS های شما به صورت Inlineدرآورد.

اگر برنامه نویس php هستید تمام موارد ذکر شده در بالا میتوانید از کتابخانه ی CssToInlineStyles بدست آورید و به وسیله ی این کتابخانه کدهای مربوط به قالب اچ تی ام ال را به راحتی برای اپراتور های ایمیل ترجمه و قابل چاپ نمایید.

کتابخانه ی CssToInlineStyles تگ ها و کلاس های شما را به زبان اپراتور های سرویس دهنده ایمیل ترجمه و ایمیلی که شما در قالب  HTML ایجاد و ارسال کردیده اید را در اپراتور ها به خوبی و به صورت استاندارد به نمایش در می آورد.

نصب و راه اندازی کتابخانه ی CssToInlineStyles

برای راه اندازی و نصب این کتابخانه از طریق composer میتوانید از کد زیر استفاده کنید:

composer require tijsverkoyen/css-to-inline-styles

برای دریافت composer میتوانید آنرا از لینک https://getcomposer.org/ دانلود کنید.

برای این که مثالی از این کتابخانه داشته باشید به کد های زیر دقت کنید:

use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;



// create instance

$cssToInlineStyles = new CssToInlineStyles();



$html = file_get_contents(__DIR__ . '/examples/sumo/index.htm');

$css = file_get_contents(__DIR__ . '/examples/sumo/style.css');



// output

echo $cssToInlineStyles->convert(

    $html,

    $css

);

 در باره ی این کتابخانه اشکالاتی نیز وجود دارد که در زیر لیستی از آنرا برای شما آماده کردیم:

  • عدم پشتیبانی از شبه انتخابگرها
  • عدم پشتیبانی از css-escapes
  • Utf-8 همیشه درست عمل نمیکند. 
 

برای این که این کتابخانه از utf-8 پشتیبانی کامل کند از متاتگ زیر استفاده کنید:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

دقت کنید که کد زیر کار نمیکند:

<meta charset="UTF-8">
 

 برای آشنای با کتابخونه ای دیگه php اینجا کلیک کنید

مقالات پیشنهادی

ارتقا ضریب امنیت داده و اطلاعات در سایت‌ها - بخش اول

در سال جاری سایت های زیادی در داخل ایران هک شده اند. شاید یکی از دلایل اصلی آن این باشد که مدیران این سایت ها توجهی به تست نفوذ بر روی سایت خود نداشته...

کلاس PHP Live Radio Streaming

در این مقاله قصد داریم به معرفی یکی دیگر از  کلاس های حوزه ی  Audioاز مجموعه کلاس های php بپردازیم.با ما همراه باشید . کلاسی که در این مقاله درباره ی...

کلاس PHP Validation

کلاس PHP Validation مجموعه ای از قوانین و متد های اعتبار سنجی است که به شما این اجازه را می دهد تا اعتبار سنجی سمت سرور را به فرم های خود با سرعت و با...

کتابخانه ی Requests for php

یکی دیگر از کتابخانه های php ، Requests است که در این مقاله قصد داریم به معرفی اجمالی و قدرت و توانایی های این کتابخانه در پیشبرد پروژه های php بپرداز...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است