Web Service:無料で商用利用可能な写真素材サイト「UNSPLASH」

クオリティの高い写真素材を無料でダウンロードできるサイト「UNSPLASH」をご紹介します。

UNSPLASH」は無料で使用できる写真素材サイトです。
しかも、商用利用可能で、著作権表示も必要なく使用することができます。

下記のサイトで確認してみてください。
フリーとは思えないクオリティが高い写真ばかりです。

unsplash.com

UNSPLASH_1

高画質でデザインがとてもオシャレなので、WEB関連など色々と利用できそうです。
また、「UNSPLASH」に掲載されている写真はとてもセンスがあると思います。

まだ素材の数はそこまで多いわけではないですが、
10日ごとに10枚づつ写真が追加されます。

見逃しがないようにRSSなどに登録しておくと良いと思います。


「UNSPLASH」のダウンロード

下記のURLにアクセスします。

http://unsplash.com/

写真が新着順に表示されています。

お気に入りの写真を探し、写真の下にある
「Download」リンクから写真をダウンロードできます。

UNSPLASH_2

また、サイト上部にある「Archive」リンクをクリックすれば、
一覧で画像を参照することができます

UNSPLASH_3

月ごとに公開した写真が並んでいるので、探しやすいと思います。

UNSPLASH_4


「UNSPLASH」のサンプル

「UNSPLASH」でダウンロードしたサンプルです。
下記のような写真素材をダウンロードすることが可能です。
※他にも色々な写真素材があります。

UNSPLASH_sample_1

UNSPLASH_sample_2

UNSPLASH_sample_3

UNSPLASH_sample_4

UNSPLASH_sample_5


フリーの写真素材などを探すときに商用利用可能とか著作権表示とかを気にしなければいけませんが、
「UNSPLASH」はそんな必要はないのでとても便利でおすすめな写真素材サイトです。

jQuery:ページ最下部までスクロールすると自動でコンテンツを読込む

WEBサイトでページの最下部までスクロールした時にローディング画像を表示し、
次に表示するコンテンツ自動で読込んで出力するようなページを見ることがあります。

jquery.bottom

FacebookTwitterなどは、同じようにページの下までスクロールすると情報を読み込んで出力します。

jQueryの「jQuery.Bottomプラグインを使用すれば同じような動作をさせることが可能です。

下記より、ダウンロードすることができます。

jquery.bottom-1.0.js

下記にjQueryの「jQuery.Bottomプラグインの使用して、ページの最下部までスクロールした時に自動的コンテンツ表示させる時の使用方法をメモします。


「jquery.bottom-1.0.js」プラグインの使用方法

JS

jQueryとjquery.bottom-1.0.jsを読み込みます。
下記はwindowオブジェクトに対して使用するように設定しています。
また、コンテンツに対してbottom.jsを指定することも可能です。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.bottom-1.0.js"></script>
<script type="text/javascript">
$(function() {

    // オプションのproximityでbottom.jsを発生する位置を指定する
    $(window).bottom({proximity: 0.05});
    $(window).bind('bottom', function() {

        var obj = $(this);

        // 「loading」がfalseの時に実行
        if (!obj.data('loading')) {

            // 「loading」をtrueにする
            obj.data('loading', true);

            // ローディング画像を表示
            $('#loadimg').html('<img src="load.gif" />');

            // 追加したい処理を記述
            setTimeout(function() {

                // ローディング画像を削除
                $('#loadimg').html('');

                // 追加するHTMLを指定
                $('#wrap').append('<div class="box">test</div><div class="box">test</div><div class="box">test</div>');

                // 処理が完了したら「loading」をfalseにする
                obj.data('loading', false);

            }, 1500);
        }

    });

    // リロードしたときにページの先頭を表示する
    $('html,body').animate({ scrollTop: 0 }, '1');

});
</script>

proximityオプションでbottom.jsを発生する位置を指定することが可能です。
proximityの数値によってイベントを行う距離を指定します。

イベント時、「loading」がfalseの時に処理を実行するようにしています。
イベントが発生した時に「loading」をtrueにし、ローディング画像を表示します。

setTimeoutに追加するコンテンツの処理を記述します。
ローデング画像を削除し、処理が完了したら「loading」をfalseにします。

また、スクロールの位置がイベントを発生する位置にある時にリロードすると
追加する要素が連続で表示してしまうので下記を追加してます。

$('html,body').animate({ scrollTop: 0 }, '1');

CSS

cssで出力する要素のスタイルを指定します。

<style type="text/css">
#wrap {
    width: 800px;
    margin: 0 auto;
}
.box {
    width: 150px;
    height: 150px;
    margin: 10px;
    padding: 10px;
    border: 3px dashed #CCCCCC;
    float: left;
}
#loadimg {
    padding-top: 50px;
    clear: both;
    text-align: center;
}
</style>

HTML

最初に表示する要素を記述します。
下までスクロールすると最初に表示している要素の後に追加されます。

<div id="wrap">
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
                ・
                ・
                ・
            (省略)
</div>

<div id="loadimg"></div>

最初に表示している要素が全て画面に表示されている状態だと
bottomイベントが発生しないので注意です。


追加するコンテンツをajaxなどでデータを取得するようにすれば、
データベースの情報などを出力できていいと思います。

また、表示する最大件数を設定する場合などは
追加した数をカウントして制限をかける必要があります。

.htaccess:トップページ以外のアクセスをリダイレクト

WEBサイトを構築している時にトップページ以外アクセスを拒否したい場合があります。
サイトの引越しやサイトの閉鎖などの時も必要になるかもしれません。

.htaccessを使用すれば、トップページ以外の下層ページにアクセスがあった場合、
トップページリダイレクトさせることが可能です。

下記に.htaccessを使用し、下層ページアクセストップページリダイレクトさせる方法をメモします。


トップページ以外のアクセスをリダイレクト

ドキュメントルートに.htaccessを設置します。
下記の内容を.htaccessに記述します。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/$)
RewriteRule ^(.*)$ / [R=301,L]

トップページのアクセスをリダイレクトさせない為に、
下記を記述しています。
無限ループさせないように「トップページではない場合」
という条件を指定しています。

RewriteCond %{REQUEST_URI} !(^/$)

また、画像やCSSを使用する為、一部のディレクトリを許可したい場合は、
下記のように記述します。
※「image」、「css」ディレクトリを許可する場合

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/$)
RewriteCond %{REQUEST_URI} !(^/image/)
RewriteCond %{REQUEST_URI} !(^/css/)
RewriteRule ^(.*)$ / [R=301,L]

下記の条件を追加しています。

RewriteCond %{REQUEST_URI} !(^/image/)
RewriteCond %{REQUEST_URI} !(^/css/)

PHP:配列内の同じ値を一つにまとめる「array_unique」

PHP配列同じ値が複数あった場合に一つまとめたい場合があります。

PHPの関数でarray_unique()を使用すれば、重複した値を削除することができます。

下記にPHParray_unique関数を使用して、配列内同じ値重複値)を取り除いた時の方法をメモします。


配列の重複値を削除「array_unique」

配列に重複した値がある場合、最初に出現した値が保持され、後の値は取り除かれます。

$arr = array('aaa', 'aaa', 'bbb', 'bbb', 'ccc');
$res = array_unique($arr);

配列の値

Array
(
    [0] => aaa
    [2] => bbb
    [4] => ccc
)

二つ以上、重複した値があった場合でも、後に出現した値は取り除かれます。

$arr = array('aaa', 'aaa', 'aaa', 'bbb', 'bbb');
$res = array_unique($arr);

配列の値

Array
(
    [0] => aaa
    [3] => bbb
)

配列に重複した値がない場合は、何もしないでそのまま出力されます。

$arr = array('aaa', 'bbb', 'ccc', 'ddd', 'eee');
$res = array_unique($arr);

配列の値

Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => ddd
    [4] => eee
)

array_unique()は重複するデータなどを集計する場合などに便利です。

Linux:ディレクトリ内にあるファイル数を表示

Linuxディレクトリフォルダ)内にあるファイルの数がどのくらいあるのかを調べたい場合があります。

ディレクトリ内にあるファイルの数が少なければ「ls」コマンドで済むかもしれませんが、
大量にある場合は「ls」コマンドではファイル数を調べるのは大変です。

find」コマンドと「wc」コマンドを使用すれば、大量にファイルがある場合でも
簡単にファイル数を取得することが可能です。

下記にLinuxディレクトリ内にあるファイル数カウントして表示する方法をメモします。


ディレクトリ内にあるファイル数を表示

ファイル数を調べたいディレクトリを指定して、下記のように記述します。
パイプを使用して「wc -l」を指定します。

find /var/www/html/ -type f | wc -l

実行すると指定したディレクトリ内のファイル数を出力します。
サブディレクトリ内のファイル数もカウントします。

また、ディレクトリの数を調べる場合は「-type d」を指定します。

find /var/www/html/ -type d | wc -l

ディレクトリ内にファイルが大量にある場合など、総数を調べたい時に便利です。