0

連想配列のみを含む 1 つの JavaScript ファイルがあります (このファイルはテスト ツールによって生成されるため、この r を変更することはできません)。これらの値をDBに保存できるように、その配列の値をphpファイルで使用する必要があります。これを行う方法を指定してください。

4

2 に答える 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 に答える