連想配列のみを含む 1 つの JavaScript ファイルがあります (このファイルはテスト ツールによって生成されるため、この r を変更することはできません)。これらの値をDBに保存できるように、その配列の値をphpファイルで使用する必要があります。これを行う方法を指定してください。
質問する
194 次
2 に答える
1
PHPは V8 エンジンを介してJavaScript を実行できますが、おそらくインストールする必要があります。これを使用して JavaScript を実行し、(できれば) データを抽出できます。
または、JavaScript をロードし、その中のデータを Ajax 経由で PHP スクリプトに送信する Web ページを作成します。
于 2012-10-10T08:44:16.027 に答える
1
あなたの最善の策は、JSON を使用することです。PHP 自体は Javascript をサポートしていませんが、JSON は多くのプラットフォームが理解できる Javascript の一般的なサブセットです (つまり、このデータを別の場所で再利用する必要がある場合、JSON はより広くサポートされます)。
具体的には、ファイルから文字列を読み取り、json_decode を使用します。
$json_str = file_get_contents("json_file.js");
json_vals = json_decode($json_str);
あなたのコメントに基づいて:
<?php
$json_orig = <<<'json_oend'
var mime_samples =
[ {
'mime': 'application/xhtml+xml',
'samples': [{
'url': 'demo.testfire.net/',
'dir': '_m0/0', //it is for show trace
'linked': 2,
'len': 9645 }] },
{
'mime': 'text/html',
'samples': [{
'url': 'demo.testfire.net/.htaccess.aspx--\x3e\x22\x3e\x27\x3e\x27\x22\x3csfi000??001v275174\x3e',
'dir': '_m1/0', //it is for show trace
'linked': 2,
'len': 34 }] } ];
json_oend;
$json_str = preg_replace("/var[^=]*=/m", "", $json_orig);
$json_str = preg_replace("/;.*/m", "", $json_str);
$json_str = preg_replace("/'/m", "\"", $json_str);
$json_str = preg_replace("/\\/\\/.*/", "", $json_str);
$json_str = preg_replace("/\\\\x/", "\\u00", $json_str);
$json_val = json_decode($json_str, true);
for($i=0; $i<count($json_val); ++$i)
{
$samples = $json_val[$i]["samples"];
for($j=0; $j<count($samples); ++$j)
{
echo "$i.$j\n";
echo $samples[$j]['url'];
echo "\n";
}
}
?>
于 2012-10-10T08:42:10.927 に答える