2013-02-15 166 views
-1

任何人都可以帮助我解决问题的快速解决方案吗?在符号之前截断php变量

我有一个从API返回的字符串,字符串就这样产生了: “181使= 2008”

$年=

所以我是用SUBSTR($一年,0, 3);得到前3位数字。 I.E. 181 问题是,现在有些字符串在返回前只有2位数字? 像这样$ year =“54?make = 2008”

所以,如果我不知道有多少数字会在?之前出现,但我知道它总是以一个?有没有一种方法可以在提取所有数据之前?并把它变成一个新的变量...

谢谢你提前!

+0

http://www.regular-expressions.info/tutorial.html – deceze 2013-02-15 19:00:51

+0

...或使用'strpos'与'substr'一起。或者其他5个字符串函数之一。 – ficuscr 2013-02-15 19:01:50

+0

看起来像一个查询字符串。您可以使用parse_url/parse_str将其分解为组件。 – 2013-02-15 19:02:03

回答

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

这工作得很好!非常感谢你。 – user1789437 2013-02-18 23:26:39

1

list($ data,$ junk)= explode(“?”,$ year); $ data将包含'?'之前的所有内容那么,你也可以做一些我想象中的正则表达式,但对我来说这更容易阅读。

1

正则表达式将努力获得第一部分。像

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

东西,如果这是你想要的一年中,你可以使用

$year = substr("181?make=2008",-4)