I'm creating PHP scraper to get value from Javascript array, how to Convert Javascript array to PHP Array
<?php
// example scraped array
$str = 'var str_array = ["aa", "bb"]';
$str = str_replace("var ", '$', $str);
eval($str);
print_r($str_array);
I'm creating PHP scraper to get value from Javascript array, how to Convert Javascript array to PHP Array
<?php
// example scraped array
$str = 'var str_array = ["aa", "bb"]';
$str = str_replace("var ", '$', $str);
eval($str);
print_r($str_array);
Share
Improve this question
edited Aug 18, 2019 at 5:04
uingtea
asked May 5, 2016 at 5:49
uingteauingtea
6,5842 gold badges31 silver badges44 bronze badges
5
-
but js is client side after converting its not
print
of array usingprint_r
– Maninderpreet Singh Commented May 5, 2016 at 5:50 - 1 Possible duplicate of how to convert javascript array to php array – S M Abrar Jahin Commented May 5, 2016 at 5:52
- What are you trying to do? – Sagar Guhe Commented May 5, 2016 at 5:53
-
Update
eval($str);
intoeval("$str;");
– Narendrasingh Sisodia Commented May 5, 2016 at 5:53 - I need js string to process in the server, it not for client side. – uingtea Commented May 5, 2016 at 5:54
2 Answers
Reset to default 4Post your javascript array as a JSON string via ajax and process it server-side.
Javascript
var str_array = ["aa", "bb"];
var request = $.ajax({
url: "test.php",
method: "POST",
data: { myData : JSON.stringify(str_array) },
dataType: "html"
});
request.done(function( msg ) {
// ajax response
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
PHP (test.php)
$json = $_POST['myData'];
$myDataArray = json_decode($json,true);
print_r($myDataArray);
Eval() should end with ;
<?php
$str = 'var str_array = ["aa", "bb"]';
$str = str_replace("var ", '$', $str);
eval($str.";");
print_r($str_array);
Output:
Array ( [0] => aa [1] => bb )
But I don't know why you opt for this.