2012-02-12 4 views
3

Я написал следующий код для подключения к FTP, что дает мне ошибку «Warning: preg_match() [function.preg матча]: Неизвестный модификатор„р“»FTP с PHP для загрузки нескольких файлов

<?php 

// define some variables 
$ftp_server="www.abc.com"; 
$ftp_user_name="username"; 
$ftp_user_pass="password"; 
$local_file = 'L021-D8127-BLUEWASH-2T.jpg'; 
$server_file = '/abc/photos/L021-D8127-BLUEWASH-2T.jpg'; 

$conn_id = ftp_connect($ftp_server); 

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

// 
//Enable PASV (Note: must be done after ftp_login()) 
// 
$mode = ftp_pasv($conn_id, TRUE); 

// get contents of the current directory 
$contents = ftp_nlist($conn_id, "abc/photos"); 

// output $contents 
//var_dump($contents); 

foreach($contents as $file){ 
if(!preg_match("/L021-D8127-BLUEWASH-([1-9]|10)(T|S)\.jpg/i", $file)){ 
    // continute if its not the file I want to download 

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

// close the connection 
ftp_close($conn_id); 

?> 

на сервере в "фото" папка у меня есть несколько экземпляров одного и того же изображения, но с другой последовательностью имен, как

L021-D8127-BLUEWASH-2T.jpg
L021-D8127-BLUEWASH-3T.jpg
L021-D8127-BL UEWASH-4T.jpg
и так далее до 10T.jpg

И точно так же ...

L021-D8127-BLUEWASH-2S.jpg
L021-D8127-BLUEWASH-3S.jpg
L021-D8127-BLUEWASH-4S.jpg
и так далее до 10S.jpg

Мой Вопрос с одним FTP соединение открытым хо w do i do to ..
1) Проверьте, все ли происшествия L021-D8127-BLUEWASH- (1 t0 10) T.jpg & L021-D8127-BLUEWASH- (1 t0 10) S.jpg Существует.
2) Если есть изображения (ы) Загрузить все файлы, соответствующие
3) Я не хочу одновременно использовать 20 FTP-соединений?

+0

Это потому, что вы не избежать '/' в preg_match. Я сказал вам это в своем ответе. –

ответ

3

Так что вы хотите сделать в вашей суме есть вызов ftp_nlist

$contents = ftp_nlist($conn_id, "."); 

И петля через результирующий набор этого.

foreach ($contents as $file) { 
    $local_file = ''; 
    $server_file = ''; 
    ftp_get($conn_id, $local_file, $server_file, FTP_BINARY) 
} 

и т.д ...

+0

Я отредактировал вопрос, пожалуйста, проверьте – user580950

Смежные вопросы