Я просто задаюсь вопросом, как я мог удалить все после определенной подстроки в PHP
исключая:
Posted On April 6th By Some Dude
Я хотел бы иметь его так, чтобы это удалило весь текст включая, и после, строка sub
Спасибо
$variable = substr($variable, 0, strpos($variable, "By"));
Простым языком: дайте мне часть строки, начинающуюся с начала и заканчивающуюся в позиции, где вы впервые встретили разделитель.
Вы могли бы сделать:
$posted = preg_replace('/ By.*/', '', $posted);
echo $posted;
Если вы используете PHP 5.3+, обратите внимание на флаг $ before_needle в strstr ()
$s = 'Posted On April 6th By Some Dude';
echo strstr($s, 'By', true);
$var = "Posted On April 6th By Some Dude";
$new_var = substr($var, 0, strpos($var, " By"));
Используя регулярное выражение: $ string = preg_replace ('/ \ s + By. * $ /', '', $ String)
preg_replace
предлагает один способ:
$newText = preg_replace('/\bBy.*$/', '', $text);
Ответ Остина работает для вашего примера.
В общем, вам следует изучить функции регулярных выражений , когда подстрока, которую вы разделяете, может различаться между строками:
$variable = preg_replace('/By.*/', '', $variable);