2013-02-15 3 views
-1

Может ли кто-нибудь помочь мне с быстрым решением проблемы?Truncate php variable перед символом

У меня есть строка, которая возвращается из API, строка приходит так: "181 сделать = 2008"

$ в год =

Так что я использовал SUBSTR ($ год, 0, 3); чтобы получить первые 3 цифры. И.Е. 181 Проблема в том, что теперь некоторые строки возвращаются только с двумя цифрами до? Как это $ year = "54? Make = 2008"

Итак, если я не знаю, сколько цифр будет стоить до?, Но я знаю, что он всегда будет заканчиваться? есть способ, которым я могу извлечь все данные до? и превратить это в новую переменную ...

Спасибо заранее!

+0

http://www.regular-expressions.info/tutorial.html – deceze

+0

... или использовать 'strpos' наряду с 'substr'. Или одна из 5 других строковых функций. – ficuscr

+0

выглядит как строка запроса. вы могли бы, вероятно, использовать parse_url/parse_str, чтобы разложить его на компоненты. –

ответ

2
$year = strstr("181?make=2008","?"); 
+0

Это сработало отлично! Большое спасибо. – user1789437

1

список ($ data, $ junk) = explode ("?", $ Year); $ данные будут содержать все до '?' тогда, вы могли бы также сделать некоторое регулярное выражение, которое я себе представляю, но для меня это намного легче читать.

1

Regex будет работать, чтобы получить первую часть. Что-то вроде

preg_match("^([0-9]+)\?",$string,$match) 

Если это год вы хотите, вы можете использовать

$year = substr("181?make=2008",-4) 
Смежные вопросы