نمایش نتایج: از شماره 1 تا 10 , از مجموع 10

موضوع: این تابع چه بلایی سر رشته میاره؟

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    باسلام، هدف متد شما پاک کردن تمام Html Entities ها است، Entity هم کارکتر های رزرو شده در html مثل > < & " و .. است، Entity ها به 2 صورت زیر قابل استفاده در کد هامون است :

    کد:
    &entity_name;
    کد:
    &#entity_number;
    شما اگر ورودی یک رشته : Toosi <salam> بدید در خط اول رشته تبدیل به Toosi &lt;salam&gt; خواهد شد، در خط بعدی دو تا Entity خودش مشخص کرده است که اگر موجود بود پاک کند (&zwnj; و &nbsp) در خط بعدی هرچه Entity Number و Entity Name پیدا کند پاک میکند، در خط بعدی تمامی Entity باقی مانده را به کارکتر خوانا تبدیل میکند (در کدی که گذاشتید لازم نیست چون با preg_replace که هست هیچ Entity باقی نخواهد ماند که Decode کند)، در خط بعدی اگر رشته حاوی چند خط باشد همه را به یک خط تبدیل خواهد کرد (newline ها را به white space تبدیل میکند)، در خط بعدی هم فاصله های دو طرف رشته را پاک خواهد کرد و خروجی Toosi salam خواهد شد.
    ویرایش توسط T.Toosi : August 12th, 2017 در ساعت 22:43

  2. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  3. #2
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    باسلام، هدف متد شما پاک کردن تمام Html Entities ها است، Entity هم کارکتر های رزرو شده در html مثل > < & " و .. است، Entity ها به 2 صورت زیر قابل استفاده در کد هامون است :

    کد:
    &entity_name;
    کد:
    &#entity_number;
    شما اگر ورودی یک رشته : Toosi <salam> بدید در خط اول رشته تبدیل به Toosi &lt;salam&gt; خواهد شد، در خط بعدی دو تا Entity خودش مشخص کرده است که اگر موجود بود پاک کند (&zwnj; و &nbsp) در خط بعدی هرچه Entity Number و Entity Name پیدا کند پاک میکند، در خط بعدی تمامی Entity باقی مانده را به کارکتر خوانا تبدیل میکند (در کدی که گذاشتید لازم نیست چون با preg_replace که هست هیچ Entity باقی نخواهد ماند که Decode کند)، در خط بعدی اگر رشته حاوی چند خط باشد همه را به یک خط تبدیل خواهد کرد (newline ها را به white space تبدیل میکند)، در خط بعدی هم فاصله های دو طرف رشته را پاک خواهد کرد و خروجی Toosi salam خواهد شد.
    پس طبق فرمایش شما بعد از preg_replace تمامی چیزهایی که از html میمونه توی متن از بین میره و html_entity_decode توی کد بیهوده استفاده شده؟

    مورد بعدی اینکه در htmlentities در پارامتر دوم از null استفاده شده. این به این معنی هست که از مقدار پیشفرض استفاده بشه؟

    تشکر

  4. #3
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط mehran-b نمایش پست ها
    پس طبق فرمایش شما بعد از preg_replace تمامی چیزهایی که از html میمونه توی متن از بین میره و html_entity_decode توی کد بیهوده استفاده شده؟

    مورد بعدی اینکه در htmlentities در پارامتر دوم از null استفاده شده. این به این معنی هست که از مقدار پیشفرض استفاده بشه؟

    تشکر
    این لاین ها بیهوده است :

    کد:
    $clear_text = str_ireplace(['&nbsp;','&zwnj;'], [' ', ' '], $clear_text);
    کد:
    $clear_text = html_entity_decode($clear_text);
    به دلیل اینکه لاین زیر تمام Entity ها را پاک میکند :

    کد:
    $clear_text = preg_replace('/&#?[a-z0-9]+;/i', '', $clear_text);

    پارامتر دوم htmlentities هم flags هست، برای مدیریت الگوریتم کدگذاری نامعتبر و کوتیشن ها استفاده میشود.

    کد:
    http://php.net/manual/en/function.htmlentities.php

  5. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  6. #4
    عضو انجمن starting آواتار ها
    تاریخ عضویت
    Jul 2015
    محل سکونت
    6346cc631627632
    نوشته ها
    255
    تشکر تشکر کرده 
    612
    تشکر تشکر شده 
    372
    تشکر شده در
    245 پست

    پیش فرض پاسخ : این تابع چه بلایی سر رشته میاره؟

    نقل قول نوشته اصلی توسط mehran-b نمایش پست ها
    پس طبق فرمایش شما بعد از preg_replace تمامی چیزهایی که از html میمونه توی متن از بین میره و html_entity_decode توی کد بیهوده استفاده شده؟

    مورد بعدی اینکه در htmlentities در پارامتر دوم از null استفاده شده. این به این معنی هست که از مقدار پیشفرض استفاده بشه؟

    تشکر
    بله فانکشن زیر لازم نیست و الکی اجرا میشه(بود و نبودش سودی نداره)
    کد PHP:
    );
    $clear_text html_entity_decode($clear_text); 
    نال رو چون نمیخواسته از هیچ flags استفاده کنه و قصد ست کردن کارکتر ست داشته اورده که تابع اتربیوت هاشو بشانسه با اینکه نیازی هم نبود استفاده کنه
    کد PHP:
       htmlentities(string,flags,character-set,double_encode
    - - - Updated - - -

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    این لاین ها بیهوده است :

    کد:
    $clear_text = str_ireplace(['&nbsp;','&zwnj;'], [' ', ' '], $clear_text);
    کد:
    $clear_text = html_entity_decode($clear_text);
    به دلیل اینکه لاین زیر تمام Entity ها را پاک میکند :
    شاید برای مورد اولی هدفش پاک کردن فاصله ها بوده
    چون در صورت عدم وجود در انتها فانکشن با رشته عبارت nbsp; رو همراه با رشته برمیگردوند
    -----

  7. تعداد تشکر ها از starting به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 0
    آخرين نوشته: June 21st, 2017, 17:51
  2. پاسخ ها: 2
    آخرين نوشته: April 17th, 2017, 17:29
  3. پاسخ ها: 2
    آخرين نوشته: January 30th, 2017, 12:33
  4. پاسخ ها: 10
    آخرين نوشته: December 10th, 2014, 12:31
  5. پاسخ ها: 39
    آخرين نوشته: March 6th, 2014, 11:43

مجوز های ارسال و ویرایش

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