PHP: Поиск стартовой позиции
Часто в работе со строками нужно определить, входит ли одна строка — подстрока — в другую, и если входит, то где. Для этого в PHP есть функция mb_strpos(). Она ищет позицию первого вхождения одной строки в другую:
<?php
print_r(mb_strpos('Валар Моргулис', 'Моргулис')); // => 6Функция вернула 6 — индекс буквы М, с которой начинается подстрока. Индексы, как обычно, отсчитываются с нуля:
<?php
print_r(mb_strpos('Валар Моргулис', 'Валар')); // => 0Здесь вернулся 0: подстрока найдена в самом начале строки.
Если же подстрока не найдена, mb_strpos() возвращает специальное значение false — «ложь». При выводе через print_r() оно выглядит как пустая строка:
<?php
print_r(mb_strpos('Валар Моргулис', 'Дракарис')); // =>Здесь скрыта ловушка, в которую часто попадают новички: результат 0 («найдено в начале строки») легко спутать с false («не найдено вообще»). Чтобы различать их, нужно строгое сравнение — мы разберем его в уроках про логику. А пока запомните: mb_strpos() отвечает на вопрос «где?», а не «есть ли?».
Задание
В программе нужно вырезать из адреса https://hexlet.io/courses имя раздела. Первый шаг — узнать, где оно начинается.
Выведите на экран позицию, с которой в строке https://hexlet.io/courses начинается подстрока courses. Используйте функцию mb_strpos().
PHP: Поиск стартовой позиции
Часто в работе со строками нужно определить, входит ли одна строка — подстрока — в другую, и если входит, то где. Для этого в PHP есть функция mb_strpos(). Она ищет позицию первого вхождения одной строки в другую:
<?php
print_r(mb_strpos('Валар Моргулис', 'Моргулис')); // => 6Функция вернула 6 — индекс буквы М, с которой начинается подстрока. Индексы, как обычно, отсчитываются с нуля:
<?php
print_r(mb_strpos('Валар Моргулис', 'Валар')); // => 0Здесь вернулся 0: подстрока найдена в самом начале строки.
Если же подстрока не найдена, mb_strpos() возвращает специальное значение false — «ложь». При выводе через print_r() оно выглядит как пустая строка:
<?php
print_r(mb_strpos('Валар Моргулис', 'Дракарис')); // =>Здесь скрыта ловушка, в которую часто попадают новички: результат 0 («найдено в начале строки») легко спутать с false («не найдено вообще»). Чтобы различать их, нужно строгое сравнение — мы разберем его в уроках про логику. А пока запомните: mb_strpos() отвечает на вопрос «где?», а не «есть ли?».
Задание
В программе нужно вырезать из адреса https://hexlet.io/courses имя раздела. Первый шаг — узнать, где оно начинается.
Выведите на экран позицию, с которой в строке https://hexlet.io/courses начинается подстрока courses. Используйте функцию mb_strpos().
Ваше упражнение проверяется по этим тестам
<?php
namespace HexletBasics\AdvancedStrings\StartWith;
use HexletBasics\Exercise\TestCase;
class SolutionTest extends TestCase
{
public function test()
{
$expected = '18';
$this->assertOutput($expected);
}
}Решение учителя откроется через:
20:00
