2015-01-09 3 views
0

PHP를 사용하여 FTP 서버에서 CSV 파일을 읽으려고합니다. 다음은 내 코드입니다 : - maps.php이 코드는 CSV의 값을 읽고 구글 맵 API에 그들을 대표하는PHP에서 ftp를 사용하여 파일 읽기

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <title>Circles</title> 
    <style> 
     html, body, #map-canvas { 
     height: 100%; 
     margin: 0px; 
     padding: 0px 
     } 
    </style> 

    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> 
    <script> 
// This example creates circles on the map, representing 
// populations in North America. 

// First, create an object containing LatLng and population for each city. 

    var citymap = []; 
    var temp = []; 
    <?php 
     $data = array(); 
     $file = fopen("ftp://b7_15716007:[email protected]/htdocs/data.csv","r"); 
    while(!feof($file)) 
    { 
     $data = fgetcsv($file); 
    ?> 
     temp.push("<?php echo $data[0]; ?>"); 
     temp.push("<?php echo $data[1]; ?>"); 
     temp.push("<?php echo $data[2]; ?>"); 
     temp.push("<?php echo $data[3]; ?>"); 
     citymap.push(temp); 
     console.log(citymap); 
     temp = []; 
    <?php 
    } 
    fclose($file); 
    ?> 
var cityCircle; 

function initialize() { 
    // Create the map. 
    var mapOptions = { 
    zoom: 4, 
    center: new google.maps.LatLng(37.09024, -95.712891), 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 

    var map = new google.maps.Map(document.getElementById('map-canvas'), 
     mapOptions); 

    // Construct the circle for each value in citymap. 
    // Note: We scale the area of the circle based on the population. 
     var fillcolor=[]; 
     fillcolor[0]='#FF0000';fillcolor[1]='#FFFF00'; fillcolor[2]='#FF00FF'; fillcolor[3]='#00FF00'; 
     var loop=0; 
    for (i = 0; i < citymap.length; i++) { 
    var populationOptions = { 
     strokeColor: '#000000', 
     strokeOpacity: 0.8, 
     strokeWeight: 2, 

     fillColor: fillcolor[loop], 
     fillOpacity: 0.35, 
     map: map, 
     center: new google.maps.LatLng(citymap[i][1], citymap[i][2]), 
     radius: Math.sqrt(citymap[i][3]) * 100000 
    }; 

    // Add the circle for this city to the map. 
    cityCircle = new google.maps.Circle(populationOptions); 
    // cityCircle = new google.maps.Circle(populationOptions1); 
    loop=loop+1; 


    } 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 
    </head> 
    <body> 
    <div id="map-canvas"></div> 
    </body> 
</html> 

. 하지만 코드가 작동하지 않습니다. 누구든지이 문제를 해결할 수 있도록 도와주십시오. csv에 대한 링크는 입니다. 인증을 사용하여 URL을 전달한 후에도지도가 표시되지 않습니다.

+0

작동하지 않는 것은 무엇입니까? 오류는 무엇인가요? + FTP에 로그인 한 것을 볼 수 없으므로 CSV 파일을 열 수 없습니다. – Matheno

+0

ftp 서버가 인증을 필요로하기 때문에'ftp_get'을 사용할 필요가 있습니다 http://php.net/manual/en/function.ftp-get.php – cmorrissey

+0

URL은 자격증을 가지고 있지만 헛된 코드로 업데이트했습니다 – Newbie

답변

0

암호로 보호 된 ftp 자원을 열 수 없습니다. 암호를 입력해야만 입력 할 수 있습니다. 자세한 내용은 http://php.net/manual/en/function.ftp-get.php : 참조

// set up basic connection 
$conn_id = ftp_connect($ftp_server); 

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// try to download $server_file and save to $local_file 
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) { 
    echo "Successfully written to $local_file\n"; 
} else { 
    echo "There was a problem\n"; 
} 

:

는, 같은 일부 인증 기능을 사용 해보세요.

+0

나는 인증'ftp : // b7_15716007 : 패스워드 @ ftp.byethost7.com/htdocs/data.csv'는 변경되지 않습니다. – Newbie

+0

@Newbie는 작동하지 않을 것입니다. 위 응답에서 함수를 사용할 필요가 있습니다 – cmorrissey

관련 문제