Ben bu metni var
? "Foo = bar & filanca = barfoo"
değişkenlere bu metni dönüştürmek için en iyi yolu nedir? Bu gibi:
<?php
echo $q['foo']; //bar
echo $q['foobar']; //barfoo
?>
Teşekkürler.
bkz http://docs.php.net/parse_str ve http://docs.php.net/parse_url
$s = "?foo=bar&foobar=barfoo";
parse_str(parse_url($s, PHP_URL_QUERY), $q);
var_dump($q);
baskılar
array(2) {
["foo"]=>
string(3) "bar"
["foobar"]=>
string(6) "barfoo"
}
edit: If you know the string always has the form ?x=y... you might want to skip parse_url() and use substr() instead.
edit2: Keep in mind that the behavior of parse_str() depends on the value of arg_separator.input. Should you set it (for whatever reason) to something like '!' parse_string() will return NULL for your input string.
e.g.
ini_set('arg_separator.input', '!');
$s = "foo=bar&foobar=barfoo";
var_dump(parse_str($s));
baskılar NULL
. But ...that would be a rather odd setting.
Peki size url kaynağından almak eğer ['bar'] $ _GET ['foo'] otomatik olması ve $ _GET bu yüzden bu bir url ama sadece bir metin dizesi ise, bunu yapabilirsiniz:
$string = "?foo=bar&foobar=barfoo";
$string = str_replace('?', '', $string);
$params = explode('&', $string);
foreach($params as $key=>$value)
{
$data = explode('=', $value);
$_GET[$data[0]] = $data[1];
}
Ve vars tüm $ _GET dizi olacak.