[英]Why json_decode return NULL with hash symbol
Use $.post
to send array from JS to PHP file: 使用
$.post
将数组从JS发送到PHP文件:
$.ajax({
url: window.location + "crawler/",
type: "POST",
dataType: "json",
data: {
wartosc: zmienna
},
success: function (odp) {
tab = JSON.stringify(odp);
$.post(window.location + "crawler/return_data",
{
data: tab //tab->array
},
function (data) {
$('#wynik').html(data);
$('.pobierz').show();
}
)
}
})
before use json_decode()
in PHP using var_dump($_POST['data']);
在使用
var_dump($_POST['data']);
在PHP中使用json_decode()
之前var_dump($_POST['data']);
array looks like this: 数组看起来像这样:
string(612) "[{"Nazwa":"http://wp.pl/","Adres IP":"212.77.98.9","Kod odpowiedzi":301,"Roboty":"-","Tytul":"-","Slowa kluczowe":"-","Opis":"-"},{"Nazwa":"http://www.wp.pl/","Adres IP":"212.77.98.9","Kod odpowiedzi":200,"Roboty":"index,follow","Tytul":"Wirtualna Polska - Wszystko co ważne - www.wp.pl","Slowa kluczowe":"wp.pl, WP, Wirtualna Polska, Pogoda, Wiadomości, Newsy, Informacje, Sport, Finanse, Rozrywka, Program, Telewizja, #dziejesiewpolsce","Opis":"Nowoczesne medium, porządkuje świat i dostarcza angażujące informacje, rozrywkę i usługi w czasie rzeczywistym. Przewodnik Polaków w wirtualnym świecie."}]"
And everything fine, but when send this array to another PHP script using this (can't use AJAX): 一切都很好,但是当使用此命令将此数组发送到另一个PHP脚本时(不能使用AJAX):
window.location.href = window.location + "crawler/save_to_csv?data=" + tab;
And try var_dump($_GET['data']);
并尝试
var_dump($_GET['data']);
return: 返回:
string(422) "[{"Nazwa":"http://wp.pl/","Adres IP":"212.77.98.9","Kod odpowiedzi":301,"Roboty":"-","Tytul":"-","Slowa kluczowe":"-","Opis":"-"},{"Nazwa":"http://www.wp.pl/","Adres IP":"212.77.98.9","Kod odpowiedzi":200,"Roboty":"index,follow","Tytul":"Wirtualna Polska - Wszystko co ważne - www.wp.pl","Slowa kluczowe":"wp.pl, WP, Wirtualna Polska, Pogoda, Wiadomości, Newsy, Informacje, Sport, Finanse, Rozrywka, Program, Telewizja, "
String cut as '#' symbol and if delete this hash from url string: 将字符串剪切为“#”符号,如果从网址字符串中删除此哈希,请执行以下操作:
'#dziejesiewpolsce' '#dziejesiewpolsce'
All works perfect, but I need hash symbol. 一切都完美,但我需要哈希符号。 How to do this?
这个怎么做?
Thanks 谢谢
You need to encode your value correctly for usage in a url. 您需要正确编码您的值以便在url中使用。
In javascript: 在javascript中:
... + "crawler/save_to_csv?data=" + encodeURIComponent(tab);
If your data is ALWAYS similarly formatted and ONLY IF hashtag is the ONLY problem (and not other characters) try this: 如果您的数据总是采用类似的格式,并且仅当井号是唯一问题(而不是其他字符)时,请尝试以下操作:
$hashtagEncodedData = str_replace("#", "%23", $_POST['data']);
$json = json_decode($hashtagEncodedData);
Then in script that receives this data (the other PHP script): 然后在接收此数据的脚本中(另一个PHP脚本):
$decodedData = rawurldecode($_GET['data']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.