Удалите часть строки после определенного символа

Я просто задаюсь вопросом, как я мог удалить все после определенной подстроки в PHP

исключая:

Posted On April 6th By Some Dude

Я хотел бы иметь его так, чтобы это удалило весь текст включая, и после, строка sub

Спасибо

126
задан Salman A 23 December 2014 в 14:25
поделиться

7 ответов

$variable = substr($variable, 0, strpos($variable, "By"));

Простым языком: дайте мне часть строки, начинающуюся с начала и заканчивающуюся в позиции, где вы впервые встретили разделитель.

258
ответ дан 24 November 2019 в 00:48
поделиться

Вы могли бы сделать:

$posted = preg_replace('/ By.*/', '', $posted);
echo $posted;
17
ответ дан 24 November 2019 в 00:48
поделиться

Если вы используете PHP 5.3+, обратите внимание на флаг $ before_needle в strstr ()

$s = 'Posted On April 6th By Some Dude';
echo strstr($s, 'By', true);
96
ответ дан 24 November 2019 в 00:48
поделиться
$var = "Posted On April 6th By Some Dude";
$new_var = substr($var, 0, strpos($var, " By"));
3
ответ дан 24 November 2019 в 00:48
поделиться

Используя регулярное выражение: $ string = preg_replace ('/ \ s + By. * $ /', '', $ String)

2
ответ дан 24 November 2019 в 00:48
поделиться

preg_replace предлагает один способ:

$newText = preg_replace('/\bBy.*$/', '', $text);
2
ответ дан 24 November 2019 в 00:48
поделиться

Ответ Остина работает для вашего примера.

В общем, вам следует изучить функции регулярных выражений , когда подстрока, которую вы разделяете, может различаться между строками:

$variable = preg_replace('/By.*/', '', $variable);
5
ответ дан 24 November 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: