SQLの窓

2013年09月08日


初心者用ファイルアップロード用テンプレート( 含 HTML5 の multiple="true" )



PHP を使用してファイルをアップロードする標準的な方法に加えて、HTML5 の input 要素で multiple="true"(要するに、ファイル選択ダイアログでファイルを複数選択が可能になります) を指定したサンプルです

Google Chrome



Firefox



IE10


<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

foreach( $_POST as $Key => $Value ) {
	$_POST[$Key] = str_replace("\\\\", "\\", $Value );
	$_POST[$Key] = str_replace("\\'", "'", $_POST[$Key] );
	$_POST[$Key] = str_replace("\\\"", "\"", $_POST[$Key] );
}

require_once("html_head.php");

print "<pre>";
print_r( $_FILES );
print "</pre>";

$target = $_FILES['file_1']['name'];

$upload = "./upload_file/";
$upload .= $target;
print $upload . "<br>";

if ( move_uploaded_file( $_FILES['file_1']['tmp_name'], $upload ) ) {
	print "アップロードに成功しました\n";
}
else {
	print "アップロードに失敗しました\n";
}

?>

更新履歴
2011-05-22 : 初回投稿
2013-09-08 : IE10 でテスト( 表示等を少し変更 )



タグ:HTML5
posted by lightbox at 2013-09-08 22:03 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする

2013年05月05日


PHP : 改行とタブと余り(%) でカレンダーを作成( 最終日は mktime で取得 )






入力した月によって、カレンダーを作成するという単純なものですが、初心者向けに、文字列はシングルクォートとドットで組み立てて、タブや改行のみダブルクォートを使用しています。

完全に画面と処理を分離していませんが、PHP に不慣れである事を想定して、HTML上部 > PHP の print > HTML の下部( + デバッグ出力 ) といった構成です。

月の最終日に関しては、マニュアルのサンプルコード部分に記述があります。

実際は、配列をカレンダーに埋め込んで、その配列にセットする条件を作るほうが簡単ですが、それだと動きが無いので初心者向けではありません。このほうが、PHP の特色をいろいろ感じながらできると思います。

最初から完成コードを見せずに、『どこで改行を入れるべきか』を考えてから作って行くのが良いと思います。( 画像内の表はヒントです )
<?php

	// HTML 側の meta 要素に依存せずにキャラクタセットを決定しています
	header( "Content-Type: text/html; Charset=utf-8" );

	// 未入力は1月とする
	if ( trim( $_GET['mon'] ) == '' ) {
		$_GET['mon'] = 1;
	}

	// HTML(画面) の主要部分を読み込んでいます
	require_once("html_head.php");

	print '<h1>' . $_GET['mon'] . '月の最終日は ' . last_date( $_GET['mon'] ) . ' 日です</h1>' . "\n";

	// HTML 上で改行コードやタブを利用する為に PRE 要素を使用しています
	print "<pre>";

	$week =  date('w', mktime(0, 0, 0, $_GET['mon'], 1, 2013));
	print '曜日は (' . $week . ') です' . "\n";
	print 'date 関数が返すのは文字列なので、$week には文字列が入ります' . "\n";

	print '<hr>';

	// $week の内容ぶんタブを出力する
	for( $i = 0; $i < ($week+0); $i++ ) {
		print "\t";
	}

	for( $i = 0; $i < 31; $i++ ) {
		print "\t" . ($i+1);
		if ( $week + ($i % 7) == 6 ) {
			print "\n";
		}

		if ( ($i+1) == last_date( $_GET['mon'] ) ) {
			break;
		}

	}

	print "\n\n";

	print "</pre>";

	// HTML(画面) の最終部分と、php のデバッグ(予備)部分を読み込んでいます
	require_once("html_footer.php");

// 2013年の指定月の最終日を求める
function last_date( $mon ) {

	$lastday = mktime(0, 0, 0, $mon+1, 0, 2013);
	$dd = date( 'j', $lastday );
	return ($dd+0);

}

?>




posted by lightbox at 2013-05-05 22:39 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする

2010年10月30日


PHP : 前ゼロ文字列作成と右から必要な長さ文字列を取得する処理

要するに、VBScript や古い VB における Right 関数の代替えが目的です。

ただ、前ゼロしたいだけなら sprintf がありますし、他の言語でも行うには、文字列の長さと開始位置から指定長さを取得する処理があればできます。
<?

// **********************************************************
// n 桁の前ゼロ文字列を作成するには
// 以下で簡単に作成できますが、
// **********************************************************
$a = sprintf("%05d", 1);
print "$a<br>";

// **********************************************************
// どんな言語でもたぶんある関数(メソッド)を使って行うには
// **********************************************************

// 1) n 桁の 0 を目的の文字列の前に連結する

$a = "00000" . 1;

// 2) 全体の長さを取得する

$len = strlen($a);

// 3) 全体の長さ - 欲しい長さを開始位置とする

$start = $len - 5;

// 4) その位置から欲しい長さぶん切り取る

$x = substr( $a, $start, 5 );

print "$x<br>";

// つまり
function m_zero( $target, $n ) {

	$target = str_repeat("0",$n) . $target;
	$len = strlen($target);
	$start = $len - $n;
	$target = substr( $target, $start, $n );
	return $target;

};

print m_zero(1,5) . "<br>";
print m_zero("AA",5) . "<br>";
print m_zero("あA",5) . "<br>";
print m_zero(1234,5) . "<br>";
print m_zero(12345,5) . "<br>";

?>

00001
00001
00001
000AA
00あA
01234
12345
タグ:PHP 文字列
posted by lightbox at 2010-10-30 19:34 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする

2009年05月05日


PHP : date 関数

文字列の現在の日付を取得する

例 : $srcid = "code" . date("ymdHis");
123
Y年。4 桁の数字。例: 1999または2003
y年。2 桁の数字。例: 99 または 03
m月。数字。先頭にゼロをつける。01 から 12
d日。二桁の数字(先頭にゼロがつく場合も)01 から 31
H時。数字。24 時間単位。00 から 23
i分。先頭にゼロをつける。00 から 59
s秒。先頭にゼロをつける。00 から 59


タグ:PHP 日付処理
posted by lightbox at 2009-05-05 13:18 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり