2010-08-26 2 views
-1

Как я могу проверить на PHP, содержит ли строка '-'?PHP получить часть строки

Пример

ABC-CDE :: ABCDEF

если '-' найдено то я должен выполнить раскол(), чтобы разделить ABC от CDE :: ABCDEF

еще нет необходимости для выполнения разделения()

как CDE :: ABCDEF

ответ

2

if (strpos($string, "-") !== false) { split(); }

+2

Этот код не будет работать в PHP 5.3. Устаревшая ошибка. Теперь это preg_split(); – pltvs

+0

Источник? Это не говорит о том, что strpos устарел: http://php.net/manual/en/function.strpos.php – Select0r

+0

Я думаю, что Александр ссылается на split() – Gordon

0

Просто разделите() и подсчитайте элементы в возвращаемом массиве. Возможно, этого достаточно, чтобы продолжить с первым (или последним) элементом, например. $newstring = split($oldstring, '-')[0] ...

+0

К сожалению. Как @Web Developer я тоже хотел взорваться. Сожалею. –

2

Просто используйте explode, который должен быть достаточно

например. explode ('-', $ urstring);

Это будет только разделить его (в массив строк), если «-» есть еще вернуть всю строку в виде массива

1

Как насчет использования $ предельного параметра взорваться()?

Это вернет массив в обоих примерах, только с одним элементом в последнем случае.

Обратите внимание, что раскол() является устаревшим PHP 5.3: http://php.net/manual/en/function.split.php

$s1 = 'ABC-cde::abcdef'; 
$s2 = 'cde::abcdef'; 
$s3 = 'ABC-with-more-hyphens'; 

explode('-', $s1, 2); 
// array(2) { 
// [0]=> 
// string(3) "ABC" 
// [1]=> 
// string(11) "cde::abcdef" 
// } 

explode('-', $s2, 2); 
// array(1) { 
// [0]=> 
// string(11) "cde::abcdef" 
// } 

explode('-', $s3, 2); 
// array(2) { 
// [0]=> 
// string(3) "ABC" 
// [1]=> 
// string(17) "with-more-hyphens" 
// } 
Смежные вопросы