PHP - лучшая стратегия для удаления части строки - PullRequest
0 голосов
/ 19 февраля 2011

Мне нужно удалить части строки, некоторые примеры строк:

$string1 = 'Castanho / Brown';
$string2 = 'Cor de Rosa / Pink';

Мне нужно удалить содержимое строки после «/», например:

$newString1 = 'Castanho';
$newString2 = 'Cor de Rosa';

Как мне это сделать в PHP?Нужны некоторые подсказки.

С наилучшими пожеланиями,

Ответы [ 7 ]

5 голосов
/ 19 февраля 2011

Если вы хотите что-то нечитаемое, вы можете сделать:

reset(explode(' / ', $input));

Было бы грустно, если бы в строке не было косой черты.

2 голосов
/ 19 февраля 2011

Регулярные выражения, вероятно, самые простые. Вы бы проверили на наличие косой черты, а затем и любого персонажа. Что-то вроде ...

$newString1 = preg_replace('~ / .*$~', '', $string1);
0 голосов
/ 26 февраля 2011

Единственно правильный способ сделать это:

$newString1 = strstr('Castanho / Brown', '/', true);
0 голосов
/ 19 февраля 2011
  • $ string1 = preg_replace ('/ \ / \ s + \ w + /', '', $ string1);

или

  • . $ string = substr ($ string, 0, strpos ($ string, "/"));
0 голосов
/ 19 февраля 2011

Вы можете использовать Explode (...) (см. http://php.net/manual/de/function.explode.php)

array explode ( string $delimiter , string $string [, int $limit ] )

чтобы разделить вашу строку следующим образом

$string = 'Castanho / Brown';
$array = exlode(' / ', $string);

echo $array[0];

Это быстрое решение, если вы всегда хотите обрезать строку после первого вхождения '/'.

0 голосов
/ 19 февраля 2011

Вы можете использовать регулярные выражения с предварительными утверждениями или старой доброй строкой.

$string1 = 'Castanho / Brown';
$cutted = trim(substr($string1, 0, strpos($string1, '/')));

// обратите внимание, это не будет проверять, если strpos === false, поэтому false будет оценено как 0, и вы ничего не получите: D

0 голосов
/ 19 февраля 2011

использование explode функция:

$separator = " / ";
$limit = 1;
$oldString = 'Castanho / Brown';
// in case the oldString does not contain any separator it will return the oldString
$newString = explode($separator,$oldString,$limit)[0] or $oldString;
...