#php #get
Вопрос:
На данный момент у меня есть этот код в php, GET Получает слова из переменной, и подавляющее большинство начинается с»@», затем я добавляю «substr», чтобы опустить первый символ, который является»@», но бывает время, когда я получаю слова без@, есть ли способ опустить только @? Я был бы очень признателен за помощь, большое вам спасибо!!
$soe = $_GET["option"];
$so = substr($soe, 1);
Комментарии:
1. Разве вы не можете просто использовать
if
утверждение, чтобы проверить, начинается ли слово с@
?
Ответ №1:
Просто обрежьте @
символ слева. Если он там, он удаляется, если нет, то он остается прежним:
$so = ltrim($soe, '@');
Если вы столкнетесь с ситуацией, когда вы хотите удалить несколько символов, вы можете указать их или диапазон:
$so = ltrim($soe, '@#');
// or
$so = ltrim($soe, '0..9'); // all numbers 0 through 9
Вы можете сделать то же самое с rtrim
правой или trim
с обеих сторон.
Комментарии:
1. Большое вам спасибо за помощь! Я могу задать вам еще кое-что… извините, Д:, но у меня есть массив с некоторыми словами, которые, если они совпадают со словом, которое они получают из ПОЛУЧЕНИЯ, они печатают сообщение, но иногда это не работает, потому что оно не соответствует заглавным буквам, есть ли способ игнорировать заглавные буквы и миниатюры? 🙁 и извините, я очень новичок в php $channel = массив( «Любой» => $префикс. «»,
2. Задайте это как новый вопрос с кодом и тем, что вы хотите сопоставить.
3. Я никогда не знал об этой
0..9
функции диапазона.
Ответ №2:
Просто проверьте, начинается ли строка с @
$so = $soe[0] == "@" ? substr($soe, 1) : $soe;
Комментарии:
1. Вы можете использовать
strcasecmp()
для выполнения сравнений без учета регистра.2. или вы можете сделать массив полностью строчным и преобразовать пользовательский ввод в нижний регистр с помощью
strtolower()
3. Спасибо за помощь!!