2010年3月28日日曜日
formのチェック項目
27 /* 28 'sample' => array( 29 'name' => 'サンプル', // 表示名 30 'required' => true, // 必須オプション(true/false) 31 'min' => null, // 最小値 32 'max' => null, // 最大値 33 'regexp' => null, // 文字種指定(正規表現) 34 'custom' => null, // メソッドによるチェック 35 'filter' => null, // 入力値変換フィルタオプション 36 'form_type' => FORM_TYPE_TEXT // フォーム型 37 'type' => VAR_TYPE_INT, // 入力値型 38 ), 39 */
var $form = array(
'mailaddress' => array(
'name' => 'メールアドレス',
'required' => true,
'type' => VAR_TYPE_STRING,
),
~省略~
$form = $this->action_form->get('mailaddress');//ここでformに
渡す事が味噌です
if($form){
$this->af->setApp($form);
return 'login';
}
~login。tpl~
<p>{$app.foo}</p>で表示されます
~login。tpl~
$this->action_form->get('mailaddress');で'mailaddress' => array(を取得できます。
配列変数は取得できまん
'mailaddress' => array(
'name' => 'メールアドレス',
'required' => true,
'type' => VAR_TYPE_STRING,
),
~省略~
$form = $this->action_form->get('mailaddress');//ここでformに
渡す事が味噌です
if($form){
$this->af->setApp($form);
return 'login';
}
~login。tpl~
<p>{$app.foo}</p>で表示されます
~login。tpl~
$this->action_form->get('mailaddress');で'mailaddress' => array(を取得できます。
配列変数は取得できまん
$from チェック
fromの文字列指定
$form = array(
'name' =>array(
'regexp' => '/^[a-zA-Z]+$/', //文字の英字
),
);
$form = array(
'name' =>array(
'regexp' => '/^[ぁ-んー]+$/', //あ~んの文字列
),
);
Smarty関数のmessage関数を使いエラーメッセージを表示
<input type="text" name="mailadd" value="$form.mailadd">
{message name="mailadd"}
$form = array(
'name' =>array(
'regexp' => '/^[a-zA-Z]+$/', //文字の英字
),
);
$form = array(
'name' =>array(
'regexp' => '/^[ぁ-んー]+$/', //あ~んの文字列
),
);
Smarty関数のmessage関数を使いエラーメッセージを表示
<input type="text" name="mailadd" value="$form.mailadd">
{message name="mailadd"}
2010年3月19日金曜日
2010年3月18日木曜日
Controllerにアクション定義を追加します。具体的には、
app/Sample_Controller.phpを以下のように編集します。
/** * @var array forward定義 */ var $forward = array( /* * TODO: ここにforward先を記述してください * * 記述例: * * 'index' => array( * 'view_name' => 'Sample_View_Index', * ), */ + 'login' => array( + 'view_name' => 'Sample_View_Login', + 'forward_path' => 'login.tpl' ), );***********************
ですので、ここでは'login'というアクションに対応するファイル
を作成するので、app/action/Login.phpというファイルを以下の ように作成すればよいことになります。Ethna_ActionClassを継承した
perform() にメソッドの戻り値として遷移先の名前(後述)を返します
<?php class Sample_Action_Login extends Ethna_ActionClass { function perform() { return 'login'; } } ?>
************************
ですので、ここでは'login'という遷移名に対応するファイル
を作成するので、app/view/Login.phpというファイルを以下のように作 成します。
<?php class Sample_View_Login extends Ethna_ViewClass { function preforward() { $this->af->setApp('now', strftime('%Y/%m/%d')); } } ?>
**********************
次に、テンプレートファイルを作成します。テンプレート
ディレクトリはtemplate/jaディレクトリで、(6)で'login.tpl'をテンプ レートファイルに指定しているので、template/ja/login.tplを作成します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head></head> <body> Login View<br /> current time: {$app.now} </body> </html>
******************
http://some.host/~foo/?action_login=trueにアクセスすると
2010年3月11日木曜日
MYSQL 記事を取ってくる
$qstring = "selectd.topicid,DATE_FORMAT( d.dt,'%Y/%m/%d') as postdatef,DATE_FORMAT( d.dt,'%H:%i') as posttimef,d.lastupdate,d.fdelete," .
"d.catid,b.category,d.title,d.body,d.image_g,YEAR(d.dt) as yyyy,MONTH(d.dt) as mm " .
" from b_webdiary d left join b_categories b " .
" on d.catid = b.catid order by d.dt desc
******************************************************
b_webdiary
b_categories
1 General
2 友人
*****************************************************
"d.catid,b.category,d.title,d.body,d.image_g,YEAR(d.dt) as yyyy,MONTH(d.dt) as mm " .
" from b_webdiary d left join b_categories b " .
" on d.catid = b.catid order by d.dt desc
******************************************************
b_webdiary
topicid | lastupdate | dt | fdelete | catid | title | body |
---|
1 | 2010-03-11 18:06:28 | 2010-03-11 18:06:28 | 0 | 1 | ddd | ddddd |
catid | category |
---|
2 友人
*****************************************************
2010年3月10日水曜日
2010年3月9日火曜日
標準偏差とは
http://www.hinkai.com/qc/hensa.htmlに分かりやすくあります。
合計の平均を出し、
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
ーーーーーーーーーーーーー
合計
ルート(合計÷5)= 平方根=標準偏差
*商品の品質管理の時などに使います。
合計の平均を出し、
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
(点数)ー(平均)二乗=和
ーーーーーーーーーーーーー
合計
ルート(合計÷5)= 平方根=標準偏差
*商品の品質管理の時などに使います。
MYSQL 合計を求める
SELECT Subject, StudentID, SUM( TestScore )
FROM tbl_Test
GROUP BY Subject
*********************************
SELECT カラム名,カラム名,SUM(カラム名)//合計を求めるカラム名
FROM テーブル名
GROUP BY カラム名//合計をまとめるカラム名
FROM tbl_Test
GROUP BY Subject
*********************************
SELECT カラム名,カラム名,SUM(カラム名)//合計を求めるカラム名
FROM テーブル名
GROUP BY カラム名//合計をまとめるカラム名
Mysql AVGで平均を求める
SELECT stor, nam, AVG( pric )
FROM ec_product
GROUP BY stor;
***********************
SELECT カラム名 ,カラム名, AVG(カラム名 )//平均を出すカラム
FROM ec_product テーブル名
GROUP BY stor; 平均を求めるグループ
FROM ec_product
GROUP BY stor;
***********************
SELECT カラム名 ,カラム名, AVG(カラム名 )//平均を出すカラム
FROM ec_product テーブル名
GROUP BY stor; 平均を求めるグループ
Mysql 抽出条件を設定
SELECT PREF_CD,PREF_NAME,T01Prefecture.AREA_CD,AREA_NAME
FROM T01Prefecture, T00Area
WHERE T01Prefecture.AREA_CD = T00Area.AREA_CD
AND PREF_CD BETWEEN 1 AND 7;
********************************************
SELECT カラム名,カラム名,テーブル名①.カラム名,カラム名
FROM テーブル名①, テーブル名②
WHERE テーブル名①.カラム名 = テーブル名②.カラム名
AND カラム名 BETWEEN 1 AND 7;
解説 ①②のテーブルを結合し、ANDの後のカラム名の1~7に当てはまるレコードだけを抽出
FROM T01Prefecture, T00Area
WHERE T01Prefecture.AREA_CD = T00Area.AREA_CD
AND PREF_CD BETWEEN 1 AND 7;
********************************************
SELECT カラム名,カラム名,テーブル名①.カラム名,カラム名
FROM テーブル名①, テーブル名②
WHERE テーブル名①.カラム名 = テーブル名②.カラム名
AND カラム名 BETWEEN 1 AND 7;
解説 ①②のテーブルを結合し、ANDの後のカラム名の1~7に当てはまるレコードだけを抽出
テーブルの結合表示
2010年3月7日日曜日
imgタグ 置き換え 正規表現
<?php
$text_x = "あああああ<img src="yyyjjj.jpg">いいいいい";
$rcd = mbereg_replace("<img src=\".+?\">", "", $text_x);
print_r($rcd."●");
?>
対象の文字列に”’などのクオートがある場合は¥で文字列とする
$text_x = "あああああ<img src="yyyjjj.jpg">いいいいい";
$rcd = mbereg_replace("<img src=\".+?\">", "", $text_x);
print_r($rcd."●");
?>
対象の文字列に”’などのクオートがある場合は¥で文字列とする
2010年3月5日金曜日
画像test
<?php
$str = 'てすと<img src="test.jpg">テスト';
$test = strip_tags($str);
print_r($test."<br>");
$content = 'てすと <img src="7-pictures-of-pretty-elene-gedevanishvili04.jpg"> テスト';
$pattern = "/\<img ([^\>]+)\>/i";
//$pattern = "/<img.*?\/>/";
preg_match_all($pattern, $content, $images);
foreach($images as $data){
foreach($data as $data2){
print_r($data2."★<br>");
}
print_r($data."●<br>");
}
print_r(count($images)."<br>");
?>
$str = 'てすと<img src="test.jpg">テスト';
$test = strip_tags($str);
print_r($test."<br>");
$content = 'てすと <img src="7-pictures-of-pretty-elene-gedevanishvili04.jpg"> テスト';
$pattern = "/\<img ([^\>]+)\>/i";
//$pattern = "/<img.*?\/>/";
preg_match_all($pattern, $content, $images);
foreach($images as $data){
foreach($data as $data2){
print_r($data2."★<br>");
}
print_r($data."●<br>");
}
print_r(count($images)."<br>");
?>
2010年3月3日水曜日
画像アップの流れ 解説
<?php
//===============================================================================
// ■■ MASAGO 離れPHP島 :GDライブラリ(3) ■■
// Class :php20040218.php
// Copyright :masago.kir.jp
// Made by :Masago
// Date :2004/02/18
// Last Update :2004/02/18
//
// Comment :大きさを変更しようっ
//
// Caution :GDライブラリ[3]
//==============================================================================
//-----------------------------------------------
// □ 変数の初期化
//-----------------------------------------------
$error = ""; //エラー
//======================================================
// ■ POSTされたときはログイン情報をチェック ■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//------------------------------------------------------
// □ 戻るボタン押下
//------------------------------------------------------
if (isset($_POST["submit"])){
//------------------------------------------------------
// □ POSTされた名前を変数に保存
//------------------------------------------------------
$img1 = $_FILES['img1']; // アップロードファイルオブジェクト
$img1tmp = $_FILES['img1']['tmp_name']; //tmpファイル名
$img1name = $_FILES['img1']['name']; //ローカルファイル名
$img1size = $_FILES['img1']['size']; //サイズ
$img1type = $_FILES['img1']['type']; //タイプ
$cwidth = $_POST['cwidth']; // 変更幅
$cheight = $_POST['cheight']; //変更縦
$cwidth = mb_convert_kana($cwidth,"as",EUC); //半角に
$cheight = mb_convert_kana($cheight,"as",EUC); //半角に
if (!ereg("^[0-9]*$",$cwidth)){$error="幅に誤りがあります。";}
if (!ereg("^[0-9]*$",$cheight)){$error="縦に誤りがあります。";}
if ($cwidth>800){$error="幅が大きすぎます";}
if ($cheight>600){$error="縦が大きすぎます";}
if ($error==""){
//------------------------------------------------------
// ■ アップロード画像チェック
//------------------------------------------------------
$kaku="";
//POSTでHTTPでUPしたfileがあったら?
if (is_uploaded_file($img1tmp)) {
//filetypeがgifだったら?
if ($img1type=="image/gif"){
$error="gif画像は操作できません";
}
//x-pngやjpaeだったら拡張子を変換
if ($img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
if ($img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
//変換した拡張子が空だったら?
if ($kaku==""){$error="アップロード画像に誤りがあります";}
//エラーがなく拡張子空な場合?
if ($kaku!="" && $error==""){
//---------------------------------------
// □ 画像のサイズを変更
//---------------------------------------
//listで配列変数の割り当て、幅と縦
list($width,$height)=getimagesize($img1tmp);
//imagecreatefromjpegはファイルまたは、URLから画像を作成する
$src=@imagecreatefromjpeg($img1tmp);
//ダミーの黒い画像を返します
$dst=imagecreatetruecolor($cwidth,$cheight);
//$dst変数に$srcに格納された画像をxyを指定してコピーする
imagecopyresized($dst,$src,0,0,0,0,$cwidth,$cheight,$width,$height);
//↑↑↑でコピーされた画像をPHPスクリプトでファイルで保蔵、または直接表示出来ます。
$boRtn=imagejpeg($dst,"20040218/" .date("YmdHis") .$kaku);
if ($boRtn){
$error="アップロードに成功しました。";
}else{
$error="アップロードに失敗しました。";
}
}else{
$error="ファイルの種類に誤りがあります。";
}
}
}
}
}else{
$cwidth="100";
$cheight="100";
}
//======================================================
// ■ H T M L ■
//======================================================
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<TITLE>2004/02/18 Sample</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" style="margin:0px" marginwidth="0" marginheight="0">
<FONT SIZE="2">
<A HREF="phpmenu.php">メニューへ</A>
<A HREF="phpsc.php?s=php20040218s.php">このページのソース</A>
<CENTER>
<BR><BR>
<B>画像をアップロードしてサイズ変更</B><BR><BR>
* jpg,pngのみ有効。ファイルサイズは50Kまで *<BR>
</FONT>
<BR>
<?php
//---------------------------------------------
// □ エラーメモリを表示
//---------------------------------------------
if ($error!=""){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?>
<BR>
<BR>
<?php
//---------------------------------------------
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
幅:<INPUT TYPE="text" NAME="cwidth" SIZE="5" VALUE="<?php echo $cwidth; ?>">pix<BR>
縦:<INPUT TYPE="text" NAME="cheight" SIZE="5" VALUE="<?php echo $cheight; ?>">pix<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロード">
</FORM>
<BR>
<HR WIDTH="600">
<BR>
<?php
//---------------------------------------------
// □ アップロードされた画像を表示
//---------------------------------------------
//ファイルを取得
$cnt=0;
$filename=array();
if ($dir = @opendir("20040218")) {
while($file = readdir($dir)) {
if (!is_dir($file)){
$cnt++;
$filename[$cnt]=$file;
}
}
closedir($dir);
}
//SORT!!
rsort($filename);
$cnt=0;
?>
<TABLE BORDER="0" WIDTH="600">
<?php
$cnt=0;
foreach($filename as $value){
$cnt++;
if ($cnt==1){echo "<TR>";}
echo "<TD VALIGN=\"center\" ALIGN=\"center\">\n";
echo "<IMG BORDER=\"0\" SRC=\"20040218/$value\">\n";
echo "</TD>\n";
if ($cnt==4){
echo "</TR>\n";
$cnt=0;
}
}
if ($cnt<4){
$cnt=4-$cnt;
echo "<TD COLSPAN=\"$cnt\"> </TD>\n";
echo "</TR>\n";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>
//===============================================================================
// ■■ MASAGO 離れPHP島 :GDライブラリ(3) ■■
// Class :php20040218.php
// Copyright :masago.kir.jp
// Made by :Masago
// Date :2004/02/18
// Last Update :2004/02/18
//
// Comment :大きさを変更しようっ
//
// Caution :GDライブラリ[3]
//==============================================================================
//-----------------------------------------------
// □ 変数の初期化
//-----------------------------------------------
$error = ""; //エラー
//======================================================
// ■ POSTされたときはログイン情報をチェック ■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//------------------------------------------------------
// □ 戻るボタン押下
//------------------------------------------------------
if (isset($_POST["submit"])){
//------------------------------------------------------
// □ POSTされた名前を変数に保存
//------------------------------------------------------
$img1 = $_FILES['img1']; // アップロードファイルオブジェクト
$img1tmp = $_FILES['img1']['tmp_name']; //tmpファイル名
$img1name = $_FILES['img1']['name']; //ローカルファイル名
$img1size = $_FILES['img1']['size']; //サイズ
$img1type = $_FILES['img1']['type']; //タイプ
$cwidth = $_POST['cwidth']; // 変更幅
$cheight = $_POST['cheight']; //変更縦
$cwidth = mb_convert_kana($cwidth,"as",EUC); //半角に
$cheight = mb_convert_kana($cheight,"as",EUC); //半角に
if (!ereg("^[0-9]*$",$cwidth)){$error="幅に誤りがあります。";}
if (!ereg("^[0-9]*$",$cheight)){$error="縦に誤りがあります。";}
if ($cwidth>800){$error="幅が大きすぎます";}
if ($cheight>600){$error="縦が大きすぎます";}
if ($error==""){
//------------------------------------------------------
// ■ アップロード画像チェック
//------------------------------------------------------
$kaku="";
//POSTでHTTPでUPしたfileがあったら?
if (is_uploaded_file($img1tmp)) {
//filetypeがgifだったら?
if ($img1type=="image/gif"){
$error="gif画像は操作できません";
}
//x-pngやjpaeだったら拡張子を変換
if ($img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
if ($img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
//変換した拡張子が空だったら?
if ($kaku==""){$error="アップロード画像に誤りがあります";}
//エラーがなく拡張子空な場合?
if ($kaku!="" && $error==""){
//---------------------------------------
// □ 画像のサイズを変更
//---------------------------------------
//listで配列変数の割り当て、幅と縦
list($width,$height)=getimagesize($img1tmp);
//imagecreatefromjpegはファイルまたは、URLから画像を作成する
$src=@imagecreatefromjpeg($img1tmp);
//ダミーの黒い画像を返します
$dst=imagecreatetruecolor($cwidth,$cheight);
//$dst変数に$srcに格納された画像をxyを指定してコピーする
imagecopyresized($dst,$src,0,0,0,0,$cwidth,$cheight,$width,$height);
//↑↑↑でコピーされた画像をPHPスクリプトでファイルで保蔵、または直接表示出来ます。
$boRtn=imagejpeg($dst,"20040218/" .date("YmdHis") .$kaku);
if ($boRtn){
$error="アップロードに成功しました。";
}else{
$error="アップロードに失敗しました。";
}
}else{
$error="ファイルの種類に誤りがあります。";
}
}
}
}
}else{
$cwidth="100";
$cheight="100";
}
//======================================================
// ■ H T M L ■
//======================================================
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<TITLE>2004/02/18 Sample</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" style="margin:0px" marginwidth="0" marginheight="0">
<FONT SIZE="2">
<A HREF="phpmenu.php">メニューへ</A>
<A HREF="phpsc.php?s=php20040218s.php">このページのソース</A>
<CENTER>
<BR><BR>
<B>画像をアップロードしてサイズ変更</B><BR><BR>
* jpg,pngのみ有効。ファイルサイズは50Kまで *<BR>
</FONT>
<BR>
<?php
//---------------------------------------------
// □ エラーメモリを表示
//---------------------------------------------
if ($error!=""){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?>
<BR>
<BR>
<?php
//---------------------------------------------
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
幅:<INPUT TYPE="text" NAME="cwidth" SIZE="5" VALUE="<?php echo $cwidth; ?>">pix<BR>
縦:<INPUT TYPE="text" NAME="cheight" SIZE="5" VALUE="<?php echo $cheight; ?>">pix<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロード">
</FORM>
<BR>
<HR WIDTH="600">
<BR>
<?php
//---------------------------------------------
// □ アップロードされた画像を表示
//---------------------------------------------
//ファイルを取得
$cnt=0;
$filename=array();
if ($dir = @opendir("20040218")) {
while($file = readdir($dir)) {
if (!is_dir($file)){
$cnt++;
$filename[$cnt]=$file;
}
}
closedir($dir);
}
//SORT!!
rsort($filename);
$cnt=0;
?>
<TABLE BORDER="0" WIDTH="600">
<?php
$cnt=0;
foreach($filename as $value){
$cnt++;
if ($cnt==1){echo "<TR>";}
echo "<TD VALIGN=\"center\" ALIGN=\"center\">\n";
echo "<IMG BORDER=\"0\" SRC=\"20040218/$value\">\n";
echo "</TD>\n";
if ($cnt==4){
echo "</TR>\n";
$cnt=0;
}
}
if ($cnt<4){
$cnt=4-$cnt;
echo "<TD COLSPAN=\"$cnt\"> </TD>\n";
echo "</TR>\n";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>
2010年3月2日火曜日
画像UPソース2
<?php
$img_tmp = $_FILES["img_path"]["tmp_name"];
$img_name = $_FILES["img_path"]["name"];
$img_size = $_FILES["img_path"]["size"];
if($_REQUEST["up"] != ""){
if($img_tmp != "" and $img_size <= 30000){
$img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type <br>一時的に保存されているパスは: $img_tmp <br>";
$FilePath = "./img/".date("Ymdhis").".".GetExt($img_name);
move_uploaded_file($img_tmp,$FilePath);
$fp = fopen("./img/data.txt","a");
fputs($fp,$FilePath."\n");
fclose($fp);
}else{
$size_error = "サイズが大きすぎます。ファイルサイズは30キロバイト以下です。";
}
}
// GetExt
// ファイルの拡張子を取得します。
function GetExt($FilePath){
$f=strrev($FilePath);
$ext=substr($f,0,strpos($f,"."));
return strrev($ext);
}
?><html>
<head>
<title>画像アップロード</title>
</head>
<body>
<h1>画像アップロード</h1>
<font color="#FF0000"><strong><?= $size_error ?></strong></font><?= $img_message ?>
<form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST"
ENCTYPE="MULTIPART/FORM-DATA">
<input name="img_path" type="file" size="40">
<input name="up" type="submit" value="アップロード"><hr>
<table border="0">
<tr>
<?php
$array_img = file("./img/data.txt");
for($i=0; $i<sizeof($array_img); $i++){
$array_img[$i] = ereg_replace("\n","",$array_img[$i]);
print "<td style=\"border:1px solid #000000\"><img src=\"$array_img[$i]\" width=\"100\" height=\"100\"></td>";
}
?>
</tr>
</table>
</form>
</body>
</html>
$img_tmp = $_FILES["img_path"]["tmp_name"];
$img_name = $_FILES["img_path"]["name"];
$img_size = $_FILES["img_path"]["size"];
if($_REQUEST["up"] != ""){
if($img_tmp != "" and $img_size <= 30000){
$img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type <br>一時的に保存されているパスは: $img_tmp <br>";
$FilePath = "./img/".date("Ymdhis").".".GetExt($img_name);
move_uploaded_file($img_tmp,$FilePath);
$fp = fopen("./img/data.txt","a");
fputs($fp,$FilePath."\n");
fclose($fp);
}else{
$size_error = "サイズが大きすぎます。ファイルサイズは30キロバイト以下です。";
}
}
// GetExt
// ファイルの拡張子を取得します。
function GetExt($FilePath){
$f=strrev($FilePath);
$ext=substr($f,0,strpos($f,"."));
return strrev($ext);
}
?><html>
<head>
<title>画像アップロード</title>
</head>
<body>
<h1>画像アップロード</h1>
<font color="#FF0000"><strong><?= $size_error ?></strong></font><?= $img_message ?>
<form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST"
ENCTYPE="MULTIPART/FORM-DATA">
<input name="img_path" type="file" size="40">
<input name="up" type="submit" value="アップロード"><hr>
<table border="0">
<tr>
<?php
$array_img = file("./img/data.txt");
for($i=0; $i<sizeof($array_img); $i++){
$array_img[$i] = ereg_replace("\n","",$array_img[$i]);
print "<td style=\"border:1px solid #000000\"><img src=\"$array_img[$i]\" width=\"100\" height=\"100\"></td>";
}
?>
</tr>
</table>
</form>
</body>
</html>
画像UPソース
<?php
//===============================================================================
// ■■ MASAGO 離れPHP島 :GDライブラリ(3) ■■
// Class :php20040218.php
// Copyright :masago.kir.jp
// Made by :Masago
// Date :2004/02/18
// Last Update :2004/02/18
//
// Comment :大きさを変更しようっ
//
// Caution :GDライブラリ[3]
//==============================================================================
//-----------------------------------------------
// □ 変数の初期化
//-----------------------------------------------
$error = ""; //エラー
//======================================================
// ■ POSTされたときはログイン情報をチェック ■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//------------------------------------------------------
// □ 戻るボタン押下
//------------------------------------------------------
if (isset($_POST["submit"])){
//------------------------------------------------------
// □ POSTされた名前を変数に保存
//------------------------------------------------------
$img1 = $_FILES['img1']; // アップロードファイルオブジェクト
$img1tmp = $_FILES['img1']['tmp_name']; //tmpファイル名
$img1name = $_FILES['img1']['name']; //ローカルファイル名
$img1size = $_FILES['img1']['size']; //サイズ
$img1type = $_FILES['img1']['type']; //タイプ
$cwidth = $_POST['cwidth']; // 変更幅
$cheight = $_POST['cheight']; //変更縦
$cwidth = mb_convert_kana($cwidth,"as",EUC); //半角に
$cheight = mb_convert_kana($cheight,"as",EUC); //半角に
if (!ereg("^[0-9]*$",$cwidth)){$error="幅に誤りがあります。";}
if (!ereg("^[0-9]*$",$cheight)){$error="縦に誤りがあります。";}
if ($cwidth>800){$error="幅が大きすぎます";}
if ($cheight>600){$error="縦が大きすぎます";}
if ($error==""){
//------------------------------------------------------
// ■ アップロード画像チェック
//------------------------------------------------------
$kaku="";
if (is_uploaded_file($img1tmp)) {
if ($img1type=="image/gif"){
$error="gif画像は操作できません";
}
if ($img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
if ($img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
if ($kaku==""){$error="アップロード画像に誤りがあります";}
if ($kaku!="" && $error==""){
//---------------------------------------
// □ 画像のサイズを変更
//---------------------------------------
list($width,$height)=getimagesize($img1tmp);
$src=@imagecreatefromjpeg($img1tmp);
$dst=imagecreatetruecolor($cwidth,$cheight);
imagecopyresized($dst,$src,0,0,0,0,$cwidth,$cheight,$width,$height);
$boRtn=imagejpeg($dst,"20040218/" .date("YmdHis") .$kaku);
if ($boRtn){
$error="アップロードに成功しました。";
}else{
$error="アップロードに失敗しました。";
}
}else{
$error="ファイルの種類に誤りがあります。";
}
}
}
}
}else{
$cwidth="100";
$cheight="100";
}
//======================================================
// ■ H T M L ■
//======================================================
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<TITLE>2004/02/18 Sample</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" style="margin:0px" marginwidth="0" marginheight="0">
<FONT SIZE="2">
<A HREF="phpmenu.php">メニューへ</A>
<A HREF="phpsc.php?s=php20040218s.php">このページのソース</A>
<CENTER>
<BR><BR>
<B>画像をアップロードしてサイズ変更</B><BR><BR>
* jpg,pngのみ有効。ファイルサイズは50Kまで *<BR>
</FONT>
<BR>
<?php
//---------------------------------------------
// □ エラーメモリを表示
//---------------------------------------------
if ($error!=""){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?>
<BR>
<BR>
<?php
//---------------------------------------------
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
幅:<INPUT TYPE="text" NAME="cwidth" SIZE="5" VALUE="<?php echo $cwidth; ?>">pix<BR>
縦:<INPUT TYPE="text" NAME="cheight" SIZE="5" VALUE="<?php echo $cheight; ?>">pix<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロード">
</FORM>
<BR>
<HR WIDTH="600">
<BR>
<?php
//---------------------------------------------
// □ アップロードされた画像を表示
//---------------------------------------------
//ファイルを取得
$cnt=0;
$filename=array();
if ($dir = @opendir("20040218")) {
while($file = readdir($dir)) {
if (!is_dir($file)){
$cnt++;
$filename[$cnt]=$file;
}
}
closedir($dir);
}
//SORT!!
rsort($filename);
$cnt=0;
?>
<TABLE BORDER="0" WIDTH="600">
<?php
$cnt=0;
foreach($filename as $value){
$cnt++;
if ($cnt==1){echo "<TR>";}
echo "<TD VALIGN=\"center\" ALIGN=\"center\">\n";
echo "<IMG BORDER=\"0\" SRC=\"20040218/$value\">\n";
echo "</TD>\n";
if ($cnt==4){
echo "</TR>\n";
$cnt=0;
}
}
if ($cnt<4){
$cnt=4-$cnt;
echo "<TD COLSPAN=\"$cnt\"> </TD>\n";
echo "</TR>\n";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>
//===============================================================================
// ■■ MASAGO 離れPHP島 :GDライブラリ(3) ■■
// Class :php20040218.php
// Copyright :masago.kir.jp
// Made by :Masago
// Date :2004/02/18
// Last Update :2004/02/18
//
// Comment :大きさを変更しようっ
//
// Caution :GDライブラリ[3]
//==============================================================================
//-----------------------------------------------
// □ 変数の初期化
//-----------------------------------------------
$error = ""; //エラー
//======================================================
// ■ POSTされたときはログイン情報をチェック ■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//------------------------------------------------------
// □ 戻るボタン押下
//------------------------------------------------------
if (isset($_POST["submit"])){
//------------------------------------------------------
// □ POSTされた名前を変数に保存
//------------------------------------------------------
$img1 = $_FILES['img1']; // アップロードファイルオブジェクト
$img1tmp = $_FILES['img1']['tmp_name']; //tmpファイル名
$img1name = $_FILES['img1']['name']; //ローカルファイル名
$img1size = $_FILES['img1']['size']; //サイズ
$img1type = $_FILES['img1']['type']; //タイプ
$cwidth = $_POST['cwidth']; // 変更幅
$cheight = $_POST['cheight']; //変更縦
$cwidth = mb_convert_kana($cwidth,"as",EUC); //半角に
$cheight = mb_convert_kana($cheight,"as",EUC); //半角に
if (!ereg("^[0-9]*$",$cwidth)){$error="幅に誤りがあります。";}
if (!ereg("^[0-9]*$",$cheight)){$error="縦に誤りがあります。";}
if ($cwidth>800){$error="幅が大きすぎます";}
if ($cheight>600){$error="縦が大きすぎます";}
if ($error==""){
//------------------------------------------------------
// ■ アップロード画像チェック
//------------------------------------------------------
$kaku="";
if (is_uploaded_file($img1tmp)) {
if ($img1type=="image/gif"){
$error="gif画像は操作できません";
}
if ($img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
if ($img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
if ($kaku==""){$error="アップロード画像に誤りがあります";}
if ($kaku!="" && $error==""){
//---------------------------------------
// □ 画像のサイズを変更
//---------------------------------------
list($width,$height)=getimagesize($img1tmp);
$src=@imagecreatefromjpeg($img1tmp);
$dst=imagecreatetruecolor($cwidth,$cheight);
imagecopyresized($dst,$src,0,0,0,0,$cwidth,$cheight,$width,$height);
$boRtn=imagejpeg($dst,"20040218/" .date("YmdHis") .$kaku);
if ($boRtn){
$error="アップロードに成功しました。";
}else{
$error="アップロードに失敗しました。";
}
}else{
$error="ファイルの種類に誤りがあります。";
}
}
}
}
}else{
$cwidth="100";
$cheight="100";
}
//======================================================
// ■ H T M L ■
//======================================================
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<TITLE>2004/02/18 Sample</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" style="margin:0px" marginwidth="0" marginheight="0">
<FONT SIZE="2">
<A HREF="phpmenu.php">メニューへ</A>
<A HREF="phpsc.php?s=php20040218s.php">このページのソース</A>
<CENTER>
<BR><BR>
<B>画像をアップロードしてサイズ変更</B><BR><BR>
* jpg,pngのみ有効。ファイルサイズは50Kまで *<BR>
</FONT>
<BR>
<?php
//---------------------------------------------
// □ エラーメモリを表示
//---------------------------------------------
if ($error!=""){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?>
<BR>
<BR>
<?php
//---------------------------------------------
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
幅:<INPUT TYPE="text" NAME="cwidth" SIZE="5" VALUE="<?php echo $cwidth; ?>">pix<BR>
縦:<INPUT TYPE="text" NAME="cheight" SIZE="5" VALUE="<?php echo $cheight; ?>">pix<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロード">
</FORM>
<BR>
<HR WIDTH="600">
<BR>
<?php
//---------------------------------------------
// □ アップロードされた画像を表示
//---------------------------------------------
//ファイルを取得
$cnt=0;
$filename=array();
if ($dir = @opendir("20040218")) {
while($file = readdir($dir)) {
if (!is_dir($file)){
$cnt++;
$filename[$cnt]=$file;
}
}
closedir($dir);
}
//SORT!!
rsort($filename);
$cnt=0;
?>
<TABLE BORDER="0" WIDTH="600">
<?php
$cnt=0;
foreach($filename as $value){
$cnt++;
if ($cnt==1){echo "<TR>";}
echo "<TD VALIGN=\"center\" ALIGN=\"center\">\n";
echo "<IMG BORDER=\"0\" SRC=\"20040218/$value\">\n";
echo "</TD>\n";
if ($cnt==4){
echo "</TR>\n";
$cnt=0;
}
}
if ($cnt<4){
$cnt=4-$cnt;
echo "<TD COLSPAN=\"$cnt\"> </TD>\n";
echo "</TR>\n";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>
画像の読み込みテスト
<?php
$image_path = 'archives/Winter.jpg';
if (file_exists($image_path)) {
$fp = fopen($image_path,'rb');
$size = filesize($image_path);
$img = fread($fp, $size);
fclose($fp);
header('Content-Type: image/gif');
echo $img;
}
?>
$image_path = 'archives/Winter.jpg';
if (file_exists($image_path)) {
$fp = fopen($image_path,'rb');
$size = filesize($image_path);
$img = fread($fp, $size);
fclose($fp);
header('Content-Type: image/gif');
echo $img;
}
?>
登録:
投稿 (Atom)