0

プロジェクト: NOAA サーバーから画像ファイルのリストを取得しようとしています (公開されており、許可されています)。ファイル名は、タイム スタンプに基づいて半ランダムです。そのディレクトリリストを配列に返す必要があります。

この投稿のコード スニペットは機能します。 ここに >>

$url をハードコーディングすると、次のようになります。

<?php
$url = 'http://radar.weather.gov/ridge/RadarImg/NCR/JAX/';
$html = file_get_contents($url);
$count = preg_match_all('/<td><a href="([^"]+)">[^<]*<\/a><\/td>/i', $html, $files);
for ($i = 0; $i < $count; ++$i) {
    echo "File: " . $files[1][$i] . "<br />\n";
}
?>

call the  function getimages (NCR, JAX) ;
function getimages (ncr_or_nzt, the_site_name) {
    var filelist =new array (); 
    var filelist = 'http://mysite.com/mypath/getimages.php?ncr_or_nzt&the_site_name';
}

次に、ディレクトリからの最新の4つのファイル名のみが必要です

最後に、var **filelist [ ]配列を「function getimages」の外で使用できるようにする必要があるため、それを html の他の場所にある「img.src」タグに割り当てることができます。**

もっとうまく説明できればいいのに。

4

2 に答える 2

0

基本的に、これはうまくいきました..ありがとう

htmlで:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" 
function loadjquery () {
$.ajax({
    "url": "ajaxV6.php",
    "type": "GET",
    "dataType": "json",
    "success": function( data, status, xhr ){
        alert("this is returned from the php ->>" + data[1] );
        noaafilelist = ( data[1] ); //<< assign to global var

    }
});

}

と..

function showResult (){
            alert('this is global ->>' + noaafilelist );
}

そして.. PHPで.. .. 最後に、印刷します

print json_encode($files[1]);

残りの html ファイルに対してグローバルにするには、次のように追加します。

var noaafilelist; // out side the function

これは数か月後には不格好に見えると確信しています..しかし、今のところ少なくとも機能しています。

デニス

于 2013-01-29T20:35:11.703 に答える
0

最初に最も簡単な...

var filelist = new Array(); // declare array outside of function first

function getimages(ncr_or_nzt, the_site_name) {
    filelist.push('http://mysite.com/mypath/getimages.php?ncr_or_nzt&the_site_name');
}

// filelist is now available outside of the function

PHP に引数を渡しています...

$argvコマンドライン引数の配列です。おそらく番号などをテストする必要がありますが、始めるには...

$url = sprintf('http://radar.weather.gov/ridge/RadarImg/%s/%s/', $argv[0], $argv[1]);

また、PHP を CLI スクリプトとして使用している場合は、#!/usr/bin/php(または OS 上の PHP の場所) を配置し、スクリプトを実行可能にします。Linux マシンではsudo chmod +x [filename]、 を実行してから、 で実行できます.\[filename]

最初の 4 つの画像のみを取得...

最後に、最新の 4 つの画像のみを取得するには、次のようにします...

$count = preg_match_all('/<td><a href="([^"]+)">[^<]*<\/a><\/td>/i', $html, $files);

// turn files array upside down, most recent first and vice versa
$files = array_reverse($files);

if ($count >= 4) {
    $count = 4;
}

または...

$count = preg_match_all('/<td><a href="([^"]+)">[^<]*<\/a><\/td>/i', $html, $files);

// turn files array upside down, most recent first and vice versa
$files = array_reverse($files);

// slice off the files we want
$files = array_slice($files[1], 0, 4);

その後...

foreach ($files as $file) {
    printf("File: %s<br/>\n", $file);
}

他に必要なものはありますか..?

于 2013-01-27T16:43:58.907 に答える