Создание папок из идентификаторов mySql и вставка в них данных - PullRequest
0 голосов
/ 03 октября 2011

У меня очень большая таблица записей (около 30 000), в которой в качестве первичного ключа указан идентификатор.Мне нужно создать папку для каждой записи и поместить изображение (URL-адрес изображения сохраняется внутри таблицы) внутри каждой папки.Есть идеи, как это можно сделать?

Ответы [ 3 ]

3 голосов
/ 03 октября 2011
$sql = "SELECT id, url FROM yourtable";
$result = mysql_query($sql) or die(mysql_error()) {
while($row = mysql_fetch_assoc($result)) {
    mkdir("/path/to/location/{$row['id']}");
    file_put_contents(file_get_contents($url), "/path/to/location/{$row['id']}/image.jpg");
}

подключение к БД, выбор подходящих имен файлов и, безусловно, добавление обработки ошибок и т. Д. ... оставлено читателю в качестве упражнения.

1 голос
/ 03 октября 2011

Используйте ваш любимый язык сценариев и просто просматривайте записи, создавая каталог и загружая изображение. На большинстве языков сценариев должно быть не более нескольких строк кода.

0 голосов
/ 03 октября 2011

Если вы можете создать CSV-файл, содержащий столбцы ID и URL, скажите:

User204293,http://mywebsite.org/thepath/myavatar.png

Вы можете использовать вариацию следующего фрагмента perl:

#!/usr/bin/perl
$DestRoot="/my/path/to/the/folders/";

open(IN,shift) or die;

while($line=<IN>){
  if ($line =~ m/^([^,]+),(http:\S+)/){
     my($id,$avatar)=($1,$2);
     mkdir($DestRoot.$id);
     chdir($DestRoot.$id);
     `wget $avatar`;
  }
}
close(IN);

и используйте его так

perl abovescript.pl myCSVfile.csv

Рекомендации, указанные Марком Б, также применимы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...