Php обрезают строку в конкретном символе

При использовании Vim можно использовать встроенную различную функциональность. vim -d file1 file2 берет Вас прямо в различный экран, где Вы можете сделать весь вид слияния и удаляете.

10
задан user1616353 21 August 2013 в 04:54
поделиться

6 ответов

Вы можете использовать explode :

$string = "/gallery/image?a=b";
list($url,$querystring) = explode('?', $string, 2);
21
ответ дан 3 December 2019 в 13:15
поделиться

Возможно что-то вроде этого:

$string = substr($string, 0, strpos($string, '?'));

Обратите внимание, что это не очень надежно (то есть без проверки ошибок и т.д.), но может помочь вам решить вашу проблему.

23
ответ дан 3 December 2019 в 13:15
поделиться

Попробуйте strtok :

$token = strtok($str, '?');

Обратите внимание, что второй параметр представляет собой список разделителей, а не строку разделителя.

10
ответ дан 3 December 2019 в 13:15
поделиться

Функции strstr и stristr находят первое вхождение в строке и возвращают все после него (включая строку поиска). Но если вы предоставите true в качестве третьего аргумента, он вернет все, что находится перед строкой поиска.

$string = strstr( $string, '?', true); # Returns /gallery/image

Если совпадение не найдено, оно вернет FALSE , чтобы вы могли написать проверьте ошибку следующим образом:

if( $path = strstr( $string, '?', true) ){
   # Do something
}
5
ответ дан 3 December 2019 в 13:15
поделиться
function imaginary_function($string, $char) {
  $index = strpos($char, $needle);
  if ($index === false) { return $string };

  return substr($string, 0, $index);
}

Превосходный официальный список функций обработки строк доступен здесь .

2
ответ дан 3 December 2019 в 13:15
поделиться

Это может быть излишним для того, что вы пытаетесь сделать, но если вы хотите разбить URL на части, попробуйте функцию PHP parse_url . Вот справочная страница PHP .

Тогда вам понадобится часть "путь" результирующего массива.

0
ответ дан 3 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

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