Php 是否可以使用explode()拆分字符串并设置变量?
是否可以有这样的字符串:Php 是否可以使用explode()拆分字符串并设置变量?,php,Php,是否可以有这样的字符串: | details==Here are some details | facebook_url==therweerw | random_word==blah blah | 得到这个: $details = "Here are some details"; $facebook_url = "therweerw"; $random_word = "blah blah"; 主要的一点是我想用一种方式来解析它,“==”分隔符左边的字符串将成为一个变量,右边的字符串将作为它的
|
details==Here are some details
|
facebook_url==therweerw
|
random_word==blah blah
|
得到这个:
$details = "Here are some details";
$facebook_url = "therweerw";
$random_word = "blah blah";
主要的一点是我想用一种方式来解析它,“==”分隔符左边的字符串将成为一个变量,右边的字符串将作为它的字符串。我不想硬编码这些变量
$str = '|
details==Here are some details
|
facebook_url==therweerw
|
random_word==blah blah
|';
preg_match_all('~^(\w+)==(.*)$~m', $str, $matches);
foreach ($matches[1] as $i => $name) {
$$name = $matches[2][$i];
}
var_dump($details, $facebook_url, $random_word);
运行示例:您可以使用
explode()
plus的组合来执行此操作。我可能会使用preg\u match\u all()
来执行此操作,但下面是explode()
的示例:
输出:
string 'Here are some details' (length=21)
string 'therweerw' (length=9)
string 'blah blah' (length=9)
爆炸不是一个好的选择,至少它本身不是。此外,您还有一个详细的结束报价缺失。我希望看到这个工作:-)。为了理解这一点,您是否正在尝试生成任何PHP代码?或者你想把它作为代码的一部分来做一些事情。我的意思是,你还想要什么呢?@Doug Owings:嗯,什么?我要一百万美元;-)只是说:你花了四分钟发布一个工作样本。令人印象深刻。@Doug Owings:呵呵,从你的第一句话开始,这对我来说并不明显;-)
extract()
如何对此有所帮助?extract()
是另一种与$$x=y等价的方法当您有一个键为x、值为y的关联数组时,代码>整体。我知道extract()
的作用。我在问,当explode()
创建带有数字索引的数组时,extract()
如何发挥作用。您真的建议使用循环创建一个以变量名为键的数组,然后使用extract()
而不是直接在同一个循环中创建变量吗?否?我同意使用可变变量可能是更直接的方法,并且不会有不同的争论extract()
只是我想到的第一件事,当有人已经将另一件添加为答案时,添加另一件没有多大意义。
string 'Here are some details' (length=21)
string 'therweerw' (length=9)
string 'blah blah' (length=9)