PHP удаляет переменную строки запроса из строки - PullRequest
2 голосов
/ 07 декабря 2010

Это $ postfields значение:

image=%40E%3A%5Cdev%5Cphoto.jpg&oauth_timestamp=1291739697&oauth_token=123456&tile=true

Мне нужно вынуть любую часть image = xxxxx этого значения, поэтому у меня есть только этоконец:

oauth_timestamp=1291739697&oauth_token=123456&tile=true

Я попробовал подходы explode () и parse_str () безуспешно.Лучшим решением было бы найти любой image = xxxxx внутри длинной строки, а затем преобразовать его в массив следующим образом:

$array['image'] = '%40E%3A%5Cdev%5Cphoto.jpg';
$array['oauth_timestamp'] = '1291739697';
$array['oauth_token'] = '123456';
$array['tile'] = 'true';

Этот способ действительно легко просто сбросить ($массив ['image']) и затем implode () все назад.Есть идеи, как это сделать?Спасибо!

Ответы [ 3 ]

3 голосов
/ 07 декабря 2010

Используйте parse_str(), чтобы разобрать его, и http_build_query(), чтобы снова собрать его вместе.

1 голос
/ 07 декабря 2010

используйте строки & oauth, а затем используйте подстроку

$rest = substr($post_data, strpos($post_data, '&oauth'));
0 голосов
/ 01 марта 2017

Это должно сработать:

function removeVarFromQueryString($varToRemove, $originalQs=null) {
    if (!$originalQs) {
        $originalQs = $_SERVER['QUERY_STRING'];
    }

    $params = [];
    parse_str($originalQs, $params);

    unset($params[$varToRemove]);
    return http_build_query($params);
}

Тогда для вашего примера:

$qs = "image=%40E%3A%5Cdev%5Cphoto.jpg&oauth_timestamp=1291739697&oauth_token=123456&tile=true";
echo removeVarFromQueryString("image", $qs); // => oauth_timestamp=1291739697&oauth_token=123456&tile=true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...