Мои переменные выглядят так:
AAAAAAA, BB CCCCCCCC
AAAA, BBBBBB CCCCCC
Я хотел бы удалить все до ","
Результаты должны выглядеть так:
BB CCCCCCCC
BBBBBB CCCCCC
Я разработал это, чтобы удалить все ПОСЛЕ ",":
list($xxx) = explode(',', $yyyyy);
к сожалению, я не знаю, как заставить его работать, чтобы удалить все, прежде чем ","
Благодаря!
Я бы не рекомендовал использовать explode, поскольку это вызывает больше проблем, если имеется более одной запятой.
// removes everything before the first , $new_str = substr($str, ($pos = strpos($str, ',')) !== false ? $pos + 1 : 0);
Редактировать:
if(($pos = strpos($str, ',')) !== false) { $new_str = substr($str, $pos + 1); } else { $new_str = get_last_word($str); }
Поскольку это простая манипуляция с строками, вы можете использовать следующее, чтобы удалить все символы перед первой запятой:
$string = preg_replace('/^[^,]*,\s*/', '', $input);
preg_replace()
позволяет вам заменить части строки на основе регулярного выражения. Давайте посмотрим на регулярное выражение.
/ is the start delimiter
^ is the "start of string" anchor
[^,] every character that isn't a comma (^ negates the class here)
* repeated zero or more times
, regular comma
\s any whitespace character
* repeated zero or more times
/ end delimiter
попробуйте это, он получит последний материал после того, как, если нет, он будет проверяться с последнего места, я завернул его в функцию, чтобы упростить ее:
<?php $value='AAAA BBBBBB CCCCCC'; function checkstr($value){ if(strpos($value,',')==FALSE){ return trim(substr(strrchr($value, ' '), 1 )); }else{ return trim(substr($value, strpos($value,',')),','); } } echo checkstr($value); ?>
ты можешь сделать:
$arr = explode(',', $yyyyy); unset($arr[0]); echo implode($arr);
с$arr = explode(',', $yyyyy); unset($arr[0]); echo implode($arr);
list(,$xxx) = explode(',', $yyyyy, 2);
Regex обычно дорогой, и я бы не рекомендовал его для чего-то такого простого. Использование взрыва и ограничение его на 2, вероятно, приведет к тому же времени выполнения, что и при использовании str_pos, но вам не нужно было ничего делать, чтобы генерировать требуемую строку, поскольку она хранится во втором индексе.
//simple answer $str = explode(',', $yyyyy,2)[1];
ИЛИ
//better $arr = explode(',', $yyyyy,2); $str = isset($arr[1]) ? $arr[1] : '';