За последние 24 часа нас посетили 16837 программистов и 1292 робота. Сейчас ищут 1480 программистов ...

endsWith/startsWith

Тема в разделе "PHP для новичков", создана пользователем NightmareZ, 9 апр 2018.

Метки:
  1. NightmareZ

    NightmareZ Активный пользователь

    С нами с:
    1 мар 2012
    Сообщения:
    62
    Симпатии:
    1
    Ребят, подскажите, где я напортачил. Три часа ночи, мозги уже не варят.
    Функции проверяют, оканчивается/начинается ли слово заданным фрагментом.
    Первым параметром идёт ключевое слово, которое нужно проверить, вторым - фрагмент или массив фрагментов.
    PHP:
    1.     function startsWith($haystack, $needle)
    2.     {
    3.         if (is_array($needle)) {
    4.             foreach ($needle as $n) {
    5.                 if (startsWith($haystack, $n)) {
    6.                     return true;
    7.                 }
    8.             }
    9.         } else {
    10.             $length = mb_strlen($needle);
    11.             return (mb_substr($haystack, 0, $length) === $needle);
    12.         }
    13.     }
    PHP:
    1.     function endsWith($haystack, $needle)
    2.     {
    3.         if (is_array($needle)) {
    4.             foreach ($needle as $n) {
    5.                 if (endsWith($haystack, $n)) {
    6.                     return true;
    7.                 }
    8.             }
    9.         } else {
    10.             $length = mb_strlen($needle);
    11.             return $length === 0 || (mb_substr($haystack, -$length) === $needle);
    12.         }
    13.     }
     
  2. NightmareZ

    NightmareZ Активный пользователь

    С нами с:
    1 мар 2012
    Сообщения:
    62
    Симпатии:
    1
    Так, вижу, нужно
    PHP:
    1. return false;
    добавить после циклов. Что ещё?
     
  3. NightmareZ

    NightmareZ Активный пользователь

    С нами с:
    1 мар 2012
    Сообщения:
    62
    Симпатии:
    1
    Всё норм, в другом месте ошибку сделал. Тему можно закрывать.