| کانال توسعه‌دهندگان PHP |
1.72K subscribers
17 photos
36 links
⭕️ کانال توسعه‌دهندگان پی‌اچ‌پی (PHP) دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
یکی از مرسوم‌ترین متد هایی که برای تولید اعداد تصادفی در PHP از اون استفاده می‌کنیم، متد rand هست

متد rand با وجود استفاده زیاد، تقریبا منسوخ و غیربهینه محسوب می‌شه و به‌صورت drop-in می‌تونیم با متد جدیدتری به‌اسم mt_rand جایگزینش کنیم

متد mt_rand از الگوریتم Mersenne Twister استفاده می‌کنه که حدودا 4 برابر سریع‌تر از الگوریتم مورد استفاده rand هست

ولی با این‌حال، هیچ یک از متد های rand یا mt_rand ایمن نیستند و به اصطلاح cryptographic secure نیستند، در اصل با پی بردن به seed اولیه‌شون می‌شه کل بازی رو در دست گرفت

برای همین اگر نیاز به تولید اعداد رندوم cryptographic دارید، توصیه می‌کنم از متد های random_int و random_bytes استفاده کنید، که معمولا چندین برابر کندتر از جنریتور های بالا هستند، ولی امنیت بهتری دارند

💎 Channel: @DevelopixPHP
👍12❤‍🔥2👎1🔥1
معمولا در PHP برای سر و کله زدن با String ها از متد های خانواده str استفاده می‌کنیم

مثلا برای گرفتن اندازه رشته، از متد strlen و برای پیدا کردن مختصات یک کاراکتر از strpos و به همین ترتیب برای سایر موارد نیز از سایر متد های خانواده str استفاده می‌کنیم

نکته‌ای که حائز اهمیت است، این است که استفاده از متد های str برای کاراکتر های Unicode و UTF توصیه نمی‌شود

چرا که متد های str به صورت خالی با byte سر و کار دارند

مثلا ایموجی‌ها را در نظر بگیرید، ایموجی‌ها معمولا 3 بایت حجم اشغال می‌کنند، به این علت که شکل نمایشی آن‌ها با شکل نوشتاری آن‌ها متفاوت است

مثلا strlen برای ایموجی 😒 معادل 3 است، ولی mb_strlen آن معادل 1 است

از جمله دلایلی که validate کردن length یا سر و کله زدن با String های یونیکدی و UTF ای را در PHP پیچیده می‌کند، نداشتن درک درمورد توابع MB است

به صورت خلاصه، اگر سر و کارتان با byte های یک String است، توابع str برای شما کفایت می‌کند

ولی اگر با متن های غیرساده سر و کار دارید، استفاده از متد های MultiByte یک ضرورت است، هرچند که چندین برابر کندتر است

💎 Channel: @DevelopixPHP
🔥12👍4👎1