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

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」を記述します。
この場合「’」シングルクォーテーションでは改行されません。必ず「”」ダブルクォーテーションで囲むようにしてください。

TCPDF FPDIでPDF読み込みエラーを解消 setSourceFile

ここではTCPDF FPDIでのPDF読み込み関数setSourceFileでエラーが出た時の解消法を解説しています。

ExcelからPDFファイルを変換生成するときにAdobePDFを使い印刷の設定を変更します。

ファイル→印刷→プリンターのプロパティ
excel

PDF設定の編集
excel1

オブジェクトレベルの圧縮をオフ
excel2

名前を付けて保存かokを押すと.joboptions拡張子の設定ファイルが生成されるので、名前を付けて保存をします。

.joboptionsを読み込めるように移動
「C:\Users\ユーザー名\AppData\Roaming\Adobe\Adobe PDF\Settings」に移動します。

詳しくはAdobe公式サイトを見てください
http://help.adobe.com/ja_JP/acrobat/standard/using/WSb2f1a50375cd48d3-1f36d19412ada208ceb-7fff.html

これで移動した設定ファイルを読み込むとTCPDF FPDIでPDFファイルが読み込めます。

関連記事
TCPDF FPDIでPDFファイル生成
https://office-goto.info/php/tcpdf-fpdi-pdf/