PHP: equal_beginning ()

Код тут . Функція подібно similar_text () порівнює два рядки і якщо вони однаково починаються, видає довжину однакового фрагмента в символах. І також як в similar_text можна передати необов'язковий параметр $ percent, в якому буде відсоткова схожість цих двох рядків (округлюється до цілого).

 

Важливо! Не завжди умолчальне кодування бібліотеки mb_string стоїть у UTF-8, тому для правильної роботи функцій з цієї бібліотеки має сенс на початку скрипта встановлювати кодування такий рядком: mb_internal_encoding ('UTF-8');

 

З'ясувалося, що у функції є баг, виявляється з деякими словами. Загадка для програмістів: приведіть в приклад пару слів, які функція некоректно обробляє і поясніть чому це відбувається.

 

Виробив рефакторінг:) Тепер з усіма словами відмінно має працювати, і не використовується перетворення рядків у масиви. Функція стала простіше і ефективніше. Викладати поки не буду, розімніть мозок.

 

Віталій у коментарях вірно помітив слабке місце першої безглуздій функції, так що загадка вже неактуальна. Ось новий варіант - http://pastie.org/1891195 . Працює як треба.

Опубліковано: 11/05/11 @ 08:53
Розділ php

Рекомендуємо:

Генератор ників на вашому сайті
Змушений спростовувати наклеп (нолікс замість Daos)
Вінчі - магазинчик для продажу файлів
Конкурс-марафон «Продам слона»
Інтерв'ю - Олег Михайленко, веб-дизайнер, автор сайту mykhailenko.com