یک تابع PHP بنویسید که با استفاده از تابع str_shuffle رشتهٔ ورودی را به‌صورت تصادفی بازآرایی کند و برای رشته‌های UTF-8 (مثل فارسی) نیز نسخه‌ای که به‌درستی کار کند ارائه دهد.

1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:44

0.0

با استفاده از str_shuffle برای رشته‌های ASCII/انگلیسی می‌توانید به‌راحتی کار را انجام دهید؛ برای پشتیبانی از UTF-8 (حروف چندبایتی مثل فارسی) ابتدا رشته را با preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY) به آرایهٔ کاراکترها تبدیل کنید، سپس از shuffle روی آرایه استفاده کرده و با implode آن را بازسازی کنید. نکته‌ها: به تفاوت بین بایت و کاراکتر توجه کنید، از توابع mb_* در صورت نیاز استفاده کنید و برای آنالیز یا ناشناس‌سازی داده‌ها اندازه و توزیع تصادفی را بررسی کنید تا عملکرد مطلوب را داشته باشد.

توسط پژوهشگر در 220 روز قبل ساعت 01:44
دسته بندی ها: PHP PHP for beginner
arman در 220 روز قبل ساعت 12:12

برای بازآرایی رشته‌های ASCII با str_shuffle مشکلی نیست، اما برای UTF-8 فقط با تبدیل کاراکترها به آرایه کار می‌کند. از preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY) استفاده کنید تا کاراکترهای چندبایتی درست جدا شوند، سپس shuffle و در نهایت implode کنید. به تفاوت بین بایت و کاراکتر توجه کنید و در صورت نیاز از توابع mb_* استفاده کنید. همچنین برای ارزیابی عملکرد، اندازه و توزیع تصادفی را بررسی کنید تا بازآرایی باکیفیت بدست آید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری