سلام دوست عزیز😃👋
به «**مسابقه استخدامی ایرانسرور**» خوش آمدی!
هرگونه **ارتباط با سایر شرکتکنندگان** و یا **استفاده از ابزارهای تولید کد، مثل `ChatGPT` و...** در مسابقات کوئرا ممنوع است و بعد از شناسایی **از لیست شرکتکنندگان مسابقه حذف میشوید**.
لینکهای مفید برای شرکت در مسابقه:
+ [قوانین شرکت در مسابقات](/course/assignments/2693/problems/33523)
+ [نحوهی کار با ورودی و خروجی](/course/assignments/2693/problems/8774)
+ [خطاهای سیستم داوری](https://quera.org/course/assignments/2693/problems/8776)
سوالات و مشکلات خودتان را میتوانید از طریق قسمت «[سوال بپرسید](https://quera.org/contest/clarification/81560/)» با ما در میان بگذارید.
**سوالات «چالشهای نام ایرانسرور»، «میزگرد بزرگ» و «معین سخنور» مربوط به تکنولوژی `PHP` و سوالات «میعین فیراری» و «ایرانگیت» مربوط به تکنولوژی`Laravel` است.**
موفق باشید و بهتون خوش بگذره 😉✌
**لیست سوالات را میتوانید از نوار سمت راست این صفحه مشاهده کنید.**
سلام دوست عزیز😃👋
به «مسابقه استخدامی ایرانسرور» خوش آمدی!
هرگونه ارتباط با سایر شرکتکنندگان و یا استفاده از ابزارهای تولید کد، مثل ChatGPT
و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکتکنندگان مسابقه حذف میشوید.
لینکهای مفید برای شرکت در مسابقه:
سوالات و مشکلات خودتان را میتوانید از طریق قسمت «سوال بپرسید» با ما در میان بگذارید.
سوالات «چالشهای نام ایرانسرور»، «میزگرد بزرگ» و «معین سخنور» مربوط به تکنولوژی PHP
و سوالات «میعین فیراری» و «ایرانگیت» مربوط به تکنولوژیLaravel
است.
موفق باشید و بهتون خوش بگذره 😉✌
لیست سوالات را میتوانید از نوار سمت راست این صفحه مشاهده کنید.
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
در دنیای توسعه نرمافزار، [**ایرانسرور** *(IranServer)*](https://www.iranserver.com/) همواره به دنبال **بهترین راهحلها** بود تا پروژههایش را منظمتر و حرفهایتر مدیریت کند. یکی از چالشهای اخیر تیم فنی، ایجاد یک تابع *slug* بود که بتواند متنها را به **قالبی استاندارد و یکنواخت** تبدیل کند. تابعی که **تمام حروف** را کوچک کند، **علائم نگارشی** را **حذف** کند و **فاصلهها** را با **خط تیره** جایگزین کند. اما مشکلی وجود داشت؛ در برخی از متون، نام **ایرانسرور** به صورت `"Iran Server"` نوشته شده بود و این باعث میشد که خروجی نهایی یکپارچه **نباشد**.

تیم توسعه پس از بررسیهای فراوان، تصمیم گرفت این مشکل را یک بار برای همیشه حل کند. آنها از شما میخواهند که این تابع را پیادهسازی کنید. یک رشتهی متنی حاوی کلمات انگلیسی، اعداد، و علائم نگارشی داریم. هدف این است که رشته را به یک *slug* تبدیل کنیم.
# جزئیات پروژه
پروژهی اولیه را از [این لینک](/contest/assignments/81560/download_problem_initial_project/279968/) دانلود کنید.
شما باید **تابع** `slugify` را به شکل زیر پیادهسازی کنید تا این کار را انجام دهد:
```php solution.php php
<?php
function slugify(string $input): string {
// TODO
}
```
### **ورودی تابع:**
+ **یک رشتهی متنی** *(حاوی حروف انگلیسی کوچک و بزرگ، اعداد، فاصله، و علائم نگارشی).*
### **خروجی تابع:**
+ یک **رشته** بهصورت *slug* که مطابق شرایط زیر پردازش شده است:
+ **تمامی حروف به حروف کوچک تبدیل شوند.**
+ **تمام علائم نگارشی از متن حذف شوند.**
+ **فاصلهها با یک خط تیره** (`-`) **جایگزین شوند.**
+ اگر کلمات `"iran"` و `"server"` **به صورت متوالی و بهترتیب با یک فاصله** ظاهر شوند، به عبارت `"iranserver"` **ادغام** شوند.
# مثالها
### نمونه ورودی ۱:
```bash
>> slugify("HeLLo Iran ServEr! PHP / Laravel ConTeSt 2025!");
```
### نمونه خروجی ۱:
```bash
>> hello-iranserver-php-laravel-contest-2025
```
### نمونه ورودی ۲:
```bash
>> slugify(" Hello #World FROM @IRan SerVeR! ");
```
### نمونه خروجی ۲:
```bash
>> hello-world-from-iranserver
```
# آنچه باید آپلود کنید
یک فایل *PHP* با نام `solution.php` که **تابع** `slugify` در آن پیادهسازی شده است آپلود کنید.
چالشهای نام ایرانسرور
- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
در دنیای توسعه نرمافزار، ایرانسرور (IranServer) همواره به دنبال بهترین راهحلها بود تا پروژههایش را منظمتر و حرفهایتر مدیریت کند. یکی از چالشهای اخیر تیم فنی، ایجاد یک تابع slug بود که بتواند متنها را به قالبی استاندارد و یکنواخت تبدیل کند. تابعی که تمام حروف را کوچک کند، علائم نگارشی را حذف کند و فاصلهها را با خط تیره جایگزین کند. اما مشکلی وجود داشت؛ در برخی از متون، نام ایرانسرور به صورت "Iran Server"
نوشته شده بود و این باعث میشد که خروجی نهایی یکپارچه نباشد.

تیم توسعه پس از بررسیهای فراوان، تصمیم گرفت این مشکل را یک بار برای همیشه حل کند. آنها از شما میخواهند که این تابع را پیادهسازی کنید. یک رشتهی متنی حاوی کلمات انگلیسی، اعداد، و علائم نگارشی داریم. هدف این است که رشته را به یک slug تبدیل کنیم.
جزئیات پروژه🔗
پروژهی اولیه را از این لینک دانلود کنید.
شما باید تابع slugify
را به شکل زیر پیادهسازی کنید تا این کار را انجام دهد:

solution.php
ورودی تابع:🔗
- یک رشتهی متنی (حاوی حروف انگلیسی کوچک و بزرگ، اعداد، فاصله، و علائم نگارشی).
خروجی تابع:🔗
- یک رشته بهصورت slug که مطابق شرایط زیر پردازش شده است:
- تمامی حروف به حروف کوچک تبدیل شوند.
- تمام علائم نگارشی از متن حذف شوند.
- فاصلهها با یک خط تیره (
-
) جایگزین شوند.
- اگر کلمات
"iran"
و "server"
به صورت متوالی و بهترتیب با یک فاصله ظاهر شوند، به عبارت "iranserver"
ادغام شوند.
مثالها🔗
نمونه ورودی ۱:🔗
نمونه خروجی ۱:🔗
نمونه ورودی ۲:🔗
نمونه خروجی ۲:🔗
آنچه باید آپلود کنید🔗
یک فایل PHP با نام solution.php
که تابع slugify
در آن پیادهسازی شده است آپلود کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.