PHP」カテゴリーアーカイブ

PHP textarea 改行

ここではPHPでtextareaをブラウザ表示するときの改行がうまくいかないときの対処法を解説しています。

nl2brを使用する

<?php

    // 特殊文字を HTML エンティティに変換
    $var = htmlspecialchars($_POST["textarea"]);
    // 改行文字の前に HTML の改行タグを挿入
    $textarea = nl2br($var);
    echo $textarea;

「nl2br」は 改行文字の前にHTMLの改行タグを挿入してくれる関数です。
textareaから[$_POST]で取得して、ブラウザ表示させるタイミングで使用します。

PHP 日付から曜日を取得

ここではPHPで日付から曜日を取得する方法を解説しています。

データベースのdate形式

<?php

    $date = "2014-1-29";
    // $date = "2014-01-29";
    // $date = "2014/1/29";
    // $date = "2014/01/29";
    $week = array("日", "月", "火", "水", "木", "金", "土");
    $date = strtotime($date);
    $w = date("w", $date);

    echo $week[$w];

年、月、日が分かれている場合

<?php

    $year = 2014;
    $month = 1;
    // $month = 01;
    $day = 29;
    $week = array("日", "月", "火", "水", "木", "金", "土");
    $time = mktime(0, 0, 0, $month, $day, $year);
    $w = date("w", $time);

    echo $week[$w];

PHP ランダムでファイル名をつけ拡張子を取得する

ここではPHPでファイルのアプロード時にランダムでファイル名をつけ拡張子を取得する方法を解説しています。

サンプルソース

<?php

    $fileName = md5(uniqid(rand(), true));
    $fileName .= '.'.substr(strrchr($_FILES['file']['name'];, '.'), 1);

解説
ファイル名をランダムに作成して、最後の「.」ドットを判別してドット以下を取得しています。
画像ファイル(jpg,png,gif)やCSVファイルでもアップロードされたときでも拡張子の取得ができます。

PHP CSVファイル出力

ここではPHPでのCSVファイル出力を解説しています。

サンプルソース

<?php

    $data[0]['name'] = "田中太郎";
    $data[0]['position'] = "社長";
    $data[1]['name'] = "野原ひろし";
    $data[1]['position'] = "係長";

    for ($i = 0; $i < count($data); $i++) {
        $csvFile .= $data[$i]['name'] . "," . $data[$i]['position'] . "\n";
    }

    // ファイル名
    $csvName = date("Y-m-d") . ".csv";
    // ファイルサイズ
    $fileSize = filesize($csvFile);

    // 文字コードを設定
    $csvFile = mb_convert_encoding($csvFile , "sjis-win", "utf-8");

    // Mime設定
    header("Content-Disposition: attachment; filename={$csvName}");
    header("Content-Length:{$fileSize}");
    header("Content-Type: application/octet-stream");
    echo $csvFile;
    exit();

解説

出力するデータを「,」カンマ区切りで記述します。(9行目)

改行するときは「\n」を記述します。
この場合「’」シングルクォーテーションでは改行されません。必ず「”」ダブルクォーテーションで囲むようにしてください。

文字化けしないように文字コードを設定します。(18行目)
サンプルソースはUTF-8で作成してあります。

ファイル名、ファイルサイズ、を設定して出力しています。(21~24行目)

CSVファイルに限らずファイルの出力後には必ずexit()してください。

PHP mb_send_mailでメール送信

ここではPHP mb_send_mailでメール送信をする方法について解説しています。

サンプルソース

<?php

    // 文字コードを設定
    mb_language("ja");
    mb_internal_encoding("UTF-8");

    $mailAdress = "example@gmail.com";
    // 複数人の場合
    // $mailAdress = "example@gmail.com,example@yahoo.co.jp";
    $subject = "件名";
    $from = "From:" . mb_encode_mimeheader("white-len") . "<info@example>";
    $body = "内容テスト1行目\n"
          . "内容テスト2行目\n";

    // メール送信
    mb_send_mail($mailAdress, $subject, $body, $from);

解説

送信したメールが文字化けする場合は文字コードを設定を変更してください。(4、5行目)
サンプルソースはphpファイルをUTF-8で作成しています。

複数人にメールを送る場合はメールアドレスを「,」カンマ区切りで記述します。(9行目)

メールの内容で改行するときは「\n」を記述します。
この場合「’」シングルクォーテーションでは改行されません。必ず「”」ダブルクォーテーションで囲むようにしてください。