У меня есть закодированная строка (она слишком длинная, чтобы ее можно было разместить здесь). Когда я использую разные утилиты для декодирования строки (http://www.the-art-of-web.com/javascript/escape/), строка выглядит отлично после urldecode(). Однако, когда я фактически передаю строку через urldecode() в моем php-файле в моей тестовой среде, первые 100 или около того символов отсутствуют. Я не могу понять, почему. Я пробовал как urldecode, так и rawurldecode. Если вы хотите увидеть строку я пытаюсь обработать вы можете сделать запрос GET на этот адрес http://pacific-wave-7885.herokuapp.com/api/opencart строковое Я работаю с это «содержимое» значение объекта JSONЧасть строки отсутствует после urldecode() в php
Что я пытаюсь сделать:
Я хочу сделать php-файл, который вызывает вышеуказанный адрес api, получает содержимое из объекта JSON, декодирует строку и анализирует код.
вот что я пробовал:
function utf8_urldecode($str) {
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
return html_entity_decode($str,null,'UTF-8');;
}
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
$file = file_get_contents('http://pacific-wave-7885.herokuapp.com/api/opencart', false, $context);
$contents_decode = utf8_urldecode($file);
echo $contents_decode;
Вы можете видеть с этим кодом, что «содержимое» начинается с «language-> нагрузки („перевозка груза/USPS“)» и отсутствует первый 100 или так символов этой части строки.
Я также попытался это:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://pacific-wave-7885.herokuapp.com/api/opencart");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$data = json_decode($output, true);
$contents = $data[0]['contents'];
$contents_decode = urldecode($contents);
echo $contents_decode;
curl_close($ch);
Это также приводит к тому же результату - часть начала строки отсутствует.
Повторить: если вы захватили закодированную строку прямо из объекта JSON и используете онлайн-инструмент для декодирования, строка выглядит великолепно, но как только она передается через urldecode() в моем php-файле, первая часть строки отсутствует персонажи.
Если кто-то может видеть то, что мне не хватает, я был бы так благодарен.
Just fyi: Моя php-среда - это последняя версия XAMPP с php5, а объект JSON поступает с сервера NODE с помощью express.js.
Если у кого-то есть лучшее представление о том, как я могу передать PHP-код в виде строки с сервера Node на сервер PHP, а затем проанализировать его, я также буду открыт для этого.
Спасибо Дэйв, я забыл отметить это правильно! – simonmoonlandings