가상 이미지 제공 사이트에서 여러 장의 이미지를 가져오는 스크립트
여러 가지 위조 이미지를 원해서 만들었어요.
가상 이미지 획득 사이트는 아래 두 사이트에서 설정한다
・lorempixel((http://lorempixel.com/)
・unsplash(https://unsplash.com/)
URL에 지정된 매개변수를 추가한 후
지정한 장수의 그림을 가져와 zip 형식으로 압축하면 다운로드할 수 있습니다.
이것은 php의 핸드폰 프로그램이다
참고가 됐으면 해서 투고했습니다.
설치 단계
작업 환경
CentOS6.5
Apache2.2
PHP5.6
※ wget, zip 명령 실행 가능
프로그램 원본
<html>
<head>
</head>
<body>
<?php
// パラメータ取得
$input = $_GET;
if (empty($input)) {
print_r("<br/>");
print_r("<b>■lorempixel サイトから画像を取得する場合</b>");
print_r("<br/>");
print_r("<br/>");
print_r("<font color='#bc3434'>※ 画像にテキストの埋め込みができますが、画像数が少ないため同じ画像が取得される可能性が高いです。</font>");
print_r("<br/>");
print_r("<br/>");
print_r("以下のルールでURLを設定してください。");
print_r("<br/>");
print_r("<br/>");
print_r("<font color='#2a86d4'>?width=[幅]&height=[高さ]&gray=[グレー画像にしたい場合は「g」と入力]&category=[カテゴリ名]&id=[写真のID]&text=ダミーテキスト&total=[ダウンロードしたい画像数]</font>");
print_r("<br/>");
print_r("<br/>");
print_r("<font color='#ec6d7f'>例:/admin/getDummyImage.php?site=lorempixel&width=150&height=150&category=cats&text=tci&total=20</font>");
print_r("<br/>");
print_r("<br/>");
print_r("※ 英字または数値で入力してください。");
print_r("<br/>");
print_r("※ 幅と高さは必須です。");
print_r("<br/>");
print_r("※ カテゴリは、「abstract, animals, business, cats, city, food, nightlife, fashion, people, nature, sports, technics, transport」が指定可能です。");
print_r("<br/>");
print_r("※ カテゴリを指定しないと、写真のID、ダミーテキストは反映されません。");
print_r("<br/>");
print_r("※ ダミーテキストは、英字で入力する必要があります。");
print_r("<br/>");
print_r("※ ダウンロードしたい画像数が多いと同じ画像が取得される可能性があります。");
print_r("<br/>");
print_r("<hr/>");
print_r("<br/>");
print_r("<b>■unsplash サイトから画像を取得する場合</b>");
print_r("<br/>");
print_r("<br/>");
print_r("<font color='#bc3434'>※ 画像数が多いので同じ画像が取得されることは少ないですが、画像にテキストの埋め込みができません。</font>");
print_r("<br/>");
print_r("<br/>");
print_r("以下のルールでURLを設定してください。");
print_r("<br/>");
print_r("<br/>");
print_r("<font color='#2a86d4'>?width=[幅]&height=[高さ]&gray=[グレー画像にしたい場合は「g」と入力]&total=[ダウンロードしたい画像数]</font>");
print_r("<br/>");
print_r("<br/>");
print_r("<font color='#ec6d7f'>例:/admin/getDummyImage.php?site=unsplash&width=150&height=150&gray=g&total=20</font>");
print_r("<br/>");
print_r("<br/>");
print_r("※ 英字または数値で入力してください。");
print_r("<br/>");
print_r("※ 幅と高さは必須です。");
print_r("<br/>");
print_r("※ 画像はランダムです。");
print_r("<br/>");
print_r("※ ダウンロードしたい画像数が多いと同じ画像が取得される可能性があります。");
print_r("<br/>");
print_r("<div style='margin-top:50px;'><small>©transcosmos inc. All rights reserved. Based by TCI-Framework.</small></div>");
exit();
}
// デフォルト値指定
$format = array('width' => 100, 'height' => 100, 'total' => 1);
// 空値のパラメータを除去
$input = array_filter($input);
// デフォルト値をパラメータ値で置換
$input = array_merge($format, $input);
// カウント変数をセット
$cnt = 1;
// ファイル格納場所
$time = time();
$path = __DIR__ . '/download/' . $time . '/';
$zippath = __DIR__ . '/download/';
$zipname = $time . '.zip';
// ディレクトリ作成
if (!file_exists($path))
{
$ret = mkdir($path, 0777, true);
chmod($path, 0777);
}
// URL条件指定
$condition = '';
if (!empty($input['gray'])) {
$condition .= $input['gray'] . '/';
}
$condition .= $input['width'] . '/';
$condition .= $input['height'] . '/';
// サイト別条件指定
$site = $input['site'];
switch($site) {
case 'lorempixel':
$url = 'http://lorempixel.com';
if (!empty($input['category'])) {
$condition .= $input['category'] . '/';
if (!empty($input['id'])) {
$condition .= $input['id'] . '/';
} else {
$condition .= '0/';
}
}
break;
case 'unsplash':
$url = 'http://unsplash.it';
$condition .= '?random';
//if (!empty($input['blur'])) {
// $condition .= '&blur=';
//}
//if (!empty($input['id'])) {
// $condition .= '&image=' . $input['id'];
//}
break;
default:
exit;
}
// ダミー画像取得
while ($cnt <= $input['total']) {
$wgetCmd = 'wget -O %s%s.jpg %s/%s';
$name = $cnt;
if (!empty($input['category']) && !empty($input['text'])) {
$conditionPlus = $condition . $input['text'] . '-' . $cnt . '/';
} else {
$conditionPlus = $condition;
}
$cmd = sprintf($wgetCmd, $path, $name, $url, $conditionPlus);
passthru($cmd, $ret);
if ($ret) {
print_r("エラーが発生しました。<br/>");
print_r("URLパラメータまたは『<?php echo $site ?>』サイトが動作していることを確認してください。");
exit;
}
$cnt++;
}
// Zip 圧縮
$ret = exec("cd " . $zippath . ";zip -r " . $zipname . " " . $time);
//if (file_exists($zippath.$zipname)) {
// header("Content-Type: application/octet-stream");
// header("Content-Disposition: attachment; filename=$zipname");
// ob_end_flush();
// readfile($zippath.$zipname);
//} else {
//}
// Tmpディレクトリ削除
//if($dh = @opendir($path)) {
//
// while (($obj = readdir($dh))) {
// if($obj=='.' || $obj=='..') continue;
// if (!@unlink($path.'/'.$obj)) rm($path.'/'.$obj);
// }
// @rmdir($path);
//}
?>
こちらからダウンロードしてください。<br/>
<a href="<?php echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] ?>/admin/download/<?php echo $time; ?>.zip" >Download</a>
</body>
</html>
브라우저를 통해 액세스하면 이러한 느낌으로 표시됩니다.URL 매개 변수를 추가하여 실행하십시오.
Reference
이 문제에 관하여(가상 이미지 제공 사이트에서 여러 장의 이미지를 가져오는 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rhinonolike/items/1ecf1de64c88cfdaee8e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)