我有一些代码打开一个ftp服务器,然后根据那里的文件将数据插入数据库
我的问题是$fname2
似乎只是将第一个文件作为变量调用并继续使用它而不是遍历所有文件名
$contents = ftp_nlist($conn_id, $dir);
$unalteredcontents = ftp_nlist($conn_id, $dir);
foreach( $contents as $fname )
{
if (($fname != '.') && ($fname != '..') )
{
foreach ($unalteredcontents as $fname2)
{
if (($fname2 != '.') && ($fname2 !='..'))
{
$url = "http://website/userid/".$uid."/".$fname2."";
}
}
$fname2
将第一个文件作为整个循环的变量返回
任何见解?
答案 0 :(得分:0)
适合我。这是我的测试代码:
<?php
// set up basic connection
$ftp_server = "ftp.yoursite.com";
$ftp_user_name = "username";
$ftp_user_pass = "password";
$dir = "./public_html/cgi-bin"; // just a sample directory
$uid = 1;
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$contents = ftp_nlist($conn_id, $dir);
$unalteredcontents = ftp_nlist($conn_id, $dir);
foreach( $contents as $fname )
{
if (($fname != '.') && ($fname != '..') )
{
foreach ($unalteredcontents as $fname2)
{
if (($fname2 != '.') && ($fname2 !='..'))
{
echo "http://website/userid/".$uid."/".$fname2."\n";
}
}
}
}
我关闭了括号并明确创建了与ftp相关的变量。
很难知道您的特定实例中发生了什么。我假设您确定目录中确实存在多个文件?