Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以使用explode()拆分字符串并设置变量?_Php - Fatal编程技术网

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等价的方法整体。我知道
extract()
的作用。我在问,当
explode()
创建带有数字索引的数组时,
extract()
如何发挥作用。您真的建议使用循环创建一个以变量名为键的数组,然后使用
extract()
而不是直接在同一个循环中创建变量吗?否?我同意使用可变变量可能是更直接的方法,并且不会有不同的争论
extract()
只是我想到的第一件事,当有人已经将另一件添加为答案时,添加另一件没有多大意义。
string 'Here are some details' (length=21)
string 'therweerw' (length=9)
string 'blah blah' (length=9)