Archive for the ‘PHPプログラム集’ Category

[php]ディレクトリの内容を読み取る

2013-09-30

ディレクトリの内容を取得してファイルが存在するかを調べるサンプルです。

<?php
  header("Content-Type: text/plain; charset=UTF-8");

  //現在ディレクトリ
  $current = getcwd();

  //@を付けてディレクトリが開けない場合のエラーを抑制
  $dir_handle = @opendir($current);

  if($dir_handle !== FALSE) {
    //1ファイル(ディレクトリ)ずつ読み込む
    while(($file = readdir($dir_handle)) !== FALSE) {
      echo $file, "\n";
    }
    closedir($dir_handle);
  }
  else {
    echo "ディレクトリが開けません";
  }
?>

重複しないファイル名を作成する

2013-09-15

特定のディレクトリにほかのファイルと重複しないユニークな名前のファイル名を作成するサンプルです。

<?php
  header("Content-Type: text/plain; charset=UTF-8");

  echo "現在のディレクトリ => ".__DIR__."\n";
  echo "現在のディレクトリのファイル一覧\n";

  $files = @scandir(__DIR__);

  if(is_array($files)) {
    foreach($files as $key => $file) {
      echo $file, "\n";
    }
  }
  else {
    echo "ディレクトリが開けません";
  }

  $uniq_name = tempnam(__DIR__, "PHP_UNIQ_");
  echo "一意なファイル名 => ".$uniq_name."\n";

  //ファイルは削除されないため明示的に削除する
  unlink($uniq_name);
?>

[PHP]バイナリファイルを読み取り方法

2013-08-26

画像ファイルなどのバイナリファイルを読み取るfread関数のサンプル

<?php
  $imgfile = "test.jpg";

  $fhandle = @fopen($imgfile, "rb");

  if($fhandle === FALSE) {
    header("Content-Type: text/plain; charset=UTF-8");
    echo "ファイルが開けません";
  }
  else {
    clearstatcache();
    $binary = fread($fhandle, filesize($imgfile));

    header("Content-Type: image/jpeg");
    echo $binary;

    fclose($fhandle);
  }
?>

[PHP]他のファイルと重複しないファイル名を作成

2013-08-10

特定のディレクトリに他のファイルと重複しないユニークなファイル名を作成するサンプルです

<?php
  header("Content-Type: text/plain; charset=UTF-8");

  echo "現在のディレクトリ => ".__DIR__."\n";
  echo "現在のディレクトリのファイル一覧\n";

  $files = @scandir(__DIR__);

  if(is_array($files)) {
    foreach($files as $key => $file) {
      echo $file, "\n";
    }
  }
  else {
    echo "ディレクトリが開けません";
  }

  $uniq_name = tempnam(__DIR__, "PHP_UNIQ_");
  echo "一意なファイル名 => ".$uniq_name."\n";

  //ファイルは削除されないため明示的に削除する
  unlink($uniq_name);
?>

[PHP]サムネイル画像生成サンプル

2013-07-25

Imagick関数を活用してサムネイル画像を作成する方法

<?php
	//元の画像
	$original_img = '358.jpg';
	
	//Imagickオブジェクト
	$im = new Imagick($original_img);
	
	//リサイズ実行
	$im->thumbnailImage(320,0);
	
	//Mimeヘッダー
	header('Content-Type: image/jpeg');
	
	//出力
	echo $im;
	
	//メモリ解放
	$im->Destroy();
?>

[php]セッション活用サンプル1

2013-03-22

session_decode関数の活用方法サンプルです
文字列表現からセッションデータに戻る事をセッションデータのデコードと言います

<?php
  //セッション開始
  session_start();

  header("Content-Type: text/plain; charset=UTF-8");

  //セッション変数初期化
  $_SESSION = array();

  echo "デコード前のセッションデータ\n";
  print_r($_SESSION);
  echo "\n";

  $result = session_decode('data1|s:37:"リスト1で保存された文字列";data2|a:3:{i:0;s:10:"文字列1";i:1;s:10:"文字列2";i:2;s:10:"文字列3";}');

  echo "文字列表現からのデコード結果 => ";
  var_dump($result);
  echo "\n";

  echo "デコード後のセッションデータ\n";
  print_r($_SESSION);

  //セッションを破棄
  $_SESSION = array();
  session_destroy();
?>

ファイルをアップロードする[php]

2013-01-16

webページからPHPスクリプトへファイルをアップロードするサンプルプログラムです。

formタグのmethod属性をpostに設定して、enctype属性にmultipart/form-dataを指定します。


<?php
 header("Content-Type: text/html; charset=UTF-8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ファイルをアップロードする</title>
</head>
<body>
<?php
//doパラメータでフォームを表示するか、受信したデータを表示するかを判断
if($_POST['do'] != 'send') {
?>
<p>ファイルアップロードフォーム</p>
<form action="<?php echo basename(__FILE__) ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="do" value="send" />
<p>お名前:<input type="text" name="your_name" value="" /></p>
<p><input type="file" name="your_file" /></p>
<p><input type="submit" name="sendbutton" value="送信する" /></p>
</form>
<?php
}
else {
 //エラーコードが成功以外の場合にはエラーを表示する
 if($_FILES['your_file']['error'] !== UPLOAD_ERR_OK) {
?>
<p>ファイルのアップロードに失敗しました</p>
<p>エラーコード(数値):<?php echo htmlspecialchars($_FILES['your_file']['error']) ?></p>
<?php
 }
 else {
?>
<p>受信したデータ</p>
<p>お名前:<?php echo htmlspecialchars($_POST['your_name']) ?></p>
<p>アップロードしたファイル</p>
<p>ファイル名:<?php echo htmlspecialchars($_FILES['your_file']['name']) ?></p>
<p>ファイルタイプ:<?php echo htmlspecialchars($_FILES['your_file']['type']) ?></p>
<p>ファイルサイズ:<?php echo htmlspecialchars($_FILES['your_file']['size']) ?></p>
<?php
 }
}
?>
</body>
</html>

フォルダー内のファイルを全て削除[php]

2012-12-05

PHPでディレクトリー(フォルダー)内の全てのファイルを削除するサンプルです。


$dir = "/home/test";
if (!$handle=opendir($dir)) die("ディレクトリの読み込みに失敗しました");
while($filename=readdir($handle))
{
 if(!preg_match("/^\./", $filename))
 {
 if (!unlink("$dir/$filename")) die("ファイルの削除に失敗しました");
 }
}

画像に文字を埋め込む[php]

2012-12-04

phpを使って画像に文字を埋め込む事ができます。

画像に文字を埋め込む(書き込む)には、imageTtfText 関数を活用します。


//元の画像1
 $source_img1 = imageCreateFromJpeg('350_1.jpg');

//元の画像2
 $source_img2 = imageCreateFromPng('350_2.png');

//元の画像2のサイズを取得
 $img_info = getimagesize($source_img2);

 //元の画像2の白色部分を透過色に設定する
 $white = ImageColorClosest ($source_img2, 255, 255, 255);
 ImageColorTransparent($source_img2,$white);

 //画像を合成する
 imageCopyMerge($source_img1, $source_img2, 100, 130, 0, 0, $img_info[0],$img_info[1],100);

 //挿入する文字列
 $text1 = "左上にこの文字が表示";
 $text2 = "test test test";

 //フォントファイルの設定
 $font = "/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf";

//文字の色を設定
 $text_color1 = imagecolorallocate($source_img1, 255, 0, 0);
 $text_color2 = imagecolorallocate($source_img1, 0, 0, 255);

//文字を画像に埋め込む
 imageTtfText($source_img1, 14, 0, 10, 15,$text_color1,$font,$text1);
 imageTtfText($source_img1, 12, 20, 170, 220,$text_color2,$font,$text2);

 //Mimeヘッダーの出力
 header("Content-Type: image/png");

 //メモリ上の画像データを出力
 Imagepng($source_img1);

 //メモリを解放
 imagedestroy($source_img1);
 imagedestroy($source_img2);

ファイルOPENせずに書き込む[PHP]

2012-12-04

PHPで、fopen関数を使ってファイルオープンをしないで直接データを書き込むサンプルです。

put_contents関数を使って書き込んでいます。

書き込み成功すると true で失敗すると false  が返ってきます。


$file = "sample.txt";

header("Content-Type: text/plain; charset=UTF-8");

//排他ロックしてファイル書き込み
 $length = file_put_contents($file, "テスト内容", LOCK_EX);

echo "ファイルに書き込んだバイト数は => ";
 var_dump($length);

echo "ファイルに書き込んだ文字列は => ";
 echo file_get_contents($file);

« Older Entries
Copyright(c) 2012 AbilitySystem All Rights Reserved.