Перетворення спеціальних символів на ASCII за допомогою методу Str::transliterate у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 12 червня, 2025
Захоплююча можливість Laravel — метод Str::transliterate, який перетворює спеціальні символи на їхні ASCII-еквіваленти, відкриває нові горизонти для нормалізації текстового контенту. Дізнайтеся, як ефективно використовувати цей метод для обробки даних у вашій програмі та забезпечення однорідності текстового формату

Метод Str::transliterate у Laravel забезпечує простий спосіб нормалізації текстового вмісту, перетворюючи спеціальні символи на їхні ASCII-еквіваленти.

Перетворення спеціальних символів на ASCII:

use Illuminate\Support\Str;

$content = Str::transliterate('Café Ñoño & Résumé');

Ось як можна використати його в сервісі обробки контенту:

class ContentProcessor
{
    public function processFormData(array $data)
    {
        return collect($data)->map(function ($value) {
            return is_string($value)
                ? Str::transliterate($value)
                : $value;
        })->all();
    }

    public function createSlug(string $title)
    {
        return Str::slug(Str::transliterate($title));
    }

    public function normalizeSearchQuery(string $query)
    {
        return strtolower(Str::transliterate($query));
    }

    public function sanitizeKeywords(array $keywords)
    {
        return array_map(function ($keyword) {
            return Str::transliterate($keyword);
        }, $keywords);
    }
}
 
class ArticleController extends Controller
{
    public function create(Request $request, ContentProcessor $processor)
    {
        $processedData = $processor->processFormData([
            'title' => $request->title,
            'content' => $request->content,
            'keywords' => $request->keywords
        ]);

        Article::create($processedData);
    }
}

Метод transliterate спрощує забезпечення єдиного формату тексту у вашому додатку