/**
* ファイルアップロードクラス
*/
class UploadFile {
public $max_size = '1000000';//アップロードファイルのサイズを設定します
public $file_name = 'date';//名前変更メソッドは以下を表します時間の命名、他の人は指定された名前を使用します
public $allow_types;//アップロードが許可されるファイル拡張子、異なるファイルタイプは「|」で区切られます
public $errmsg = '';//エラーメッセージ
public $uploaded = ' ' ;//アップロードされたファイル名 (ファイルパスを含む)
public $save_path;//アップロードされたファイルの保存パス
private $files;//アップロードを待機している送信されたファイル
private $file_type = array();//ファイルの種類
private $ext = '';//ファイル拡張子をアップロードします
/**
* コンストラクター、初期化クラス
* @access public
* @param string $file_name アップロードされたファイル名
* @param string $save_path アップロードされた対象フォルダー
*/
public function __construct($save_path = './upload/',$file_name = 'date',$allow_types = '' ) {
$this->file_name = $file_name;//名前変更メソッドは時間に基づいた名前付けを表し、他のメソッドは指定された名前を使用します
$this->save_path = (preg_match('//$/',$save_path) ) ? $save_path : $save_path .
$this->allow_types = $allow_types == '' ? 'jpg|gif|png|zip|rar' : $allow_types; /
パブリック関数upload_file($files) {
$name = $files['name'];
$size = $files['size']; $files['tmp_name'];
$error = $files['error'];
case 0 : $this->errmsg = ''; ->errmsg = 'php.ini のファイル サイズを超えました';
case 2 : $this->errmsg = 'MAX_FILE_SIZE オプションで指定されたファイル サイズを超えました'; this->errmsg = 'ファイルの一部のみがアップロードされました';
case 4 : $this->errmsg = 'ファイルはアップロードされませんでした'
break; = 'アップロード ファイル サイズは 0';
break;
default : $this->errmsg = 'ファイルのアップロードに失敗しました。 ';
break;
}
if($error == 0 && is_uploaded_file($tmp_name)) {
//ファイルの種類を確認します
if($this->check_file_type($name) == FALSE){
return FALSE ;
}
//ファイルサイズを検出
if($size > $this->max_size){
$this->errmsg = 'ファイルをアップロード'.$name.' が大きすぎます。サポートされる最大値は '.ceil($this->max_size/1024).'kb ファイル';
FALSE を返します
} - >set_save_path();// ファイルの保存パスを設定します
$new_name = $this->file_name != 'date' ? $this->file_name.'.'.$this->ext : date( 'YmdHis ').'.'.$this->ext;//新しいファイル名を設定します
$this->uploaded = $this->save_path.$new_name;//アップロード後のファイル名
/ /ファイルを移動
if(move_uploaded_file($tmp_name,$this->uploaded)){
$this->errmsg = 'File'.$this->uploaded.'フォント>アップロード成功! ';
return TRUE;
}else{
$this->errmsg = 'ファイル'.$this->アップロードされました。'アップロードに失敗しました。';
return FALSE;
}
}
}
/**
* アップロードされたファイルの種類を確認します
* @access public
* @param string $filename チェックを待機しているファイル名
* @return チェックが成功した場合は TRUE を返し、失敗した場合は FALSE を返し、エラーメッセージを返します
*/
$ext = $this->get_file_type($filename); ;ext = $ext;
$allow_types =explode('|',$this->allow_types);//アップロード可能なファイル拡張子を配列に分割します
//echo $ext;//アップロードされたファイルを確認しますファイル拡張子 アップロードが許可されているファイル拡張子ですか?
if(in_array($ext,$allow_types)){
}else{
$this->errmsg = 'ファイルをアップロードタイプ エラー。'.str_replace('|',',',$this->allow_types).' 、など ファイルの種類!';
return FALSE;
}
}
/**
* ファイルタイプを取得します
* @access public
* @param string $filename ファイルタイプを取得する対象のファイル名
* @return string ファイルタイプ
*/
$info = pathinfo($filename); ['拡張子 '];
return $ext;
/**
* ファイルをアップロードした後に保存パスを設定します
*/
public function set_save_path(){
$this->save_path = (preg_match('//$/',$this- >save_path )) ? $this->save_path : $this->save_path .
if(!is_dir($this->save_path)){
// ディレクトリが存在しない場合は、ディレクトリ
$this- >set_dir();
}
}
/**
* ディレクトリを作成します
* @access public
* @param string $dir ディレクトリを作成するパス
* @return boolean エラーメッセージを返し、失敗した場合は FALSE を返します
*/
public function set_dir($dir = null){
//パスが存在するかどうかを確認する
if(!$dir ){
$dir = $ this->save_path;
}
if(is_dir($dir)){
$this->errmsg = '作成するフォルダーは既に存在します。 ';
}
$dir =explode('/', $dir);
foreach($v){
$d .= $v . !is_dir($d)){
$state = mkdir($d, 0777);
if(!$state)
$this->errmsg = '$d を作成しています。'エラー!';
}
}
}
return true;
}
}
/*************************************************
* 写真処理クラス
*
* 画像に対するサムネイル、ウォーターマーク、その他の操作を生成できます
* このクラスのデフォルトのエンコーディングは UTF8 です。GBK で使用したい場合は、img_mark メソッド内の中国語文字列ウォーターマークの iconv コメントを削除してください。
*
* UTF8の漢字と英語の文字の大きさ(ピクセル)を決めるのが難しいため、中国語と英語の文字が混在しすぎると文字列が左
*または右に偏ってしまう可能性があります。 Adjust $strc_w = strlen($this- プロジェクト環境に応じて get_mark_xy メソッド内 >mark_str)*7+5 Enter
* ライン調整
* このクラスをより良く使用するには、GD ライブラリのサポートが必要です。 GD ライブラリ 2.0+
*
* @author kickflip@php100 QQ263340607
******* **************************** **************/
class UploadImg extends UploadFile {
public $mark_str = 'kickflip@php100' //ウォーターマーク文字列
public $ str_r = 0; //文字列の色 R
public $str_g = 0; //文字列の色 G
public $str_b = 0; //文字列の色 B
$mark_ttf = './upload/SIMSUN.TTC' ;テキストフォントファイル (パスを含む)
public $mark_logo = './upload/logo.png'; //透かし画像
public $resize_h;//サムネイルの高さを生成
public $resize_w;//サムネイルを生成 サムネイルの幅
$ source_img;//ソース画像ファイル
public $dst_path = './upload/';//サムネイルファイル格納ディレクトリ、空白の場合はソース画像格納ディレクトリになります
/**
* サムネイル生成後の画像を生成します
* @access public
* @param integer $w 縮小画像の幅(px)
* @param integer $h 縮小画像の高さ(px)
* @param string $source_img ソース画像(パス+ファイル名)
*/
public function img_resize($w,$h,$source_img = NULL){
$source_img = $source_img == NULL ? $this->uploaded : $source_img;// ソース ファイルのアドレスを取得します (空の場合)。デフォルトは最後にアップロードされた画像です
if(!is_file($source_img)) { //ソース画像が存在するかどうかを確認します
$this->errmsg = 'File'.$source_img.'存在しません';
return FALSE;
}
$this->source_img = $source_img;
$img_info = getimagesize($source_img); // ソース画像を作成
$this->resize_w = $w ;
$this->resize_h = $h;
$thumb = imagecreatetruecolor($w,$h); ,$img_info [0],$img_info[1]);//サムネイル画像を生成
$dst_path = $this->dst_path == '' $this->save_path : $this->dst_path; //ターゲットフォルダーのパスを取得します
$dst_path = (preg_match('//$/',$dst_path)) ? $dst_path : $dst_path .//ターゲットフォルダーの後に / を追加します
if(!is_dir($dst_path) )) $this->set_dir($dst_path); // ターゲットフォルダーが存在しない場合は作成します
$dst_name = $this->set_newname($source_img);
$this->img_output($thumb) ,$ dst_name);//出力画像
imagedestroy($source);
imagedestroy($thumb);
/**
*Watermark
*@access public
*@param string $source_img ソース画像のパス + ファイル名
*@param integer $mark_type ウォーターマークの種類 (1 は英語の文字列、2 は中国語の文字列、3 は画像のロゴ、デフォルトは英語) string)
*@param integer $mark_postion ウォーターマークの位置 (1 は左下隅、2 は右下隅、3 は左上隅、4 は右上隅、デフォルトは右下隅です); *@return 透かし入りの画像
*/
public function img_mark($source_img = NULL,$mark_type = 1,$ mark_postion = 2) {
$source_img = $source_img == NULL ? $this->uploaded : $source_img;// ソース ファイルのアドレスを取得します。空の場合は、最後にアップロードされた画像がデフォルトになります
if( !is_file($source_img )) { //ソース画像が存在するかどうかを確認します
$this->errmsg = 'File'.$source_img.'存在しません'
return FALSE
}
$this->source_img; = $source_img;
$img_info = getimagesize($source_img);
$source = $this->img_create($source_img); // ソース画像を作成します
$mark_xy = $this->get_mark_xy($mark_postion); /ウォーターマークの位置を取得します
$mark_color = imagecolorallocate($source,$this->str_r,$this->str_g,$this->str_b);
switch($mark_type) {
case 1: //追加英語の文字列ウォーターマーク
$str = $this->mark_str;
imagestring($source,5,$mark_xy[0],$mark_xy[1],$str,$mark_color); source,$source_img);
break;
case 2: //中国語の文字列ウォーターマークを追加します
if(!is_file($this->mark_ttf)) { //フォントファイルが存在するかどうかを確認します
$this->errmsg = 'ウォーターマークに失敗しました: フォント ファイル '.$this->mark_ttf.' が存在しません!'
$this->mark_str; ,'utf-8', $str);//GBK エンコーディングを使用する場合は、この行のコメントを削除してください
imagettftext($source,12,0,$mark_xy[2],$mark_xy[3] ],$mark_color,$this->mark_ttf, $str);
$this->img_output($source,$source_img);
case 3: //画像のウォーターマークを追加します
if($this ->mark_logo)){ //ウォーターマークがある場合 ロゴ画像の基本情報を取得します 存在しない場合は終了
$logo_info = getimagesize($this->mark_logo);
}else{
$this->errmsg = '透かしの挿入に失敗しました: ロゴ ファイル '.$this->mark_logo.' が存在しません。 ';
FALSE を返す
}
$logo_info = getimagesize($this->mark_logo)
if($logo_info[0]>$img_info[0] || $logo_info[1]>$img_info[1] ]) { //ソース画像がロゴのサイズより小さい場合は終了します
$this->errmsg = '透かしの挿入に失敗しました: ソース画像 '.$this->source_img.' は '.$this-> より小さいです;マークロゴ。';
FALSE を返す
}
$logo = $this->img_create($this->mark_logo);
imagecopy ( $source, $logo, $mark_xy[5], 0, 0, $logo_info[0], $logo_info[1]);
$this->img_output($source,$source_img);
default: //その他はテキスト画像です
$str = $this- > ;mark_str;
imagestring($source,5,$mark_xy[0],$str,$mark_color);
$this->img_output($source,$source_img);
imagedestroy($source);
}
/**
* ウォーターマークの位置を取得します
* @access private
* @param integer $mark_postion ウォーターマークの位置 (1 は左下隅、2 は右下隅、3 は左上隅、4 は右上隅)隅、その他は右下隅です)
* @return array $mark_xy 透かしの位置の座標 (インデックス 0 は英語の文字列透かし座標 X、インデックス 1 は英語の文字列透かし座標 Y、
* インデックス 2 は中国語)文字列透かし座標 X、インデックス 3 は中国語文字列透かし座標 Y、インデックス 4 は透かし画像座標 X、インデックス 5 は透かし画像座標 Y)
*/
プライベート関数 get_mark_xy($mark_postion){
$img_info = getimagesize($this->source_img);
$stre_w = strlen($this - >mark_str)*9+5; //ウォーターマークの英語文字列の長さ (px) (サイズ 5 の英語文字のサイズは約 9px、さらに美しさの 5px)
//(サイズの中国語文字のサイズ12 は 12px、utf8 では、中国語の文字の長さは 3 バイトで 1 バイトあたり 4 ピクセルですが、英語の文字の長さは 1 バイトあたり約 9 ピクセルです
// 中国語と英語が混在している場合に完全に表示するには、その値を設定します長さをバイト数にします *7px)
$strc_w = strlen($this->mark_str)*7+5; //ウォーターマークの中国語文字列の長さ (px)
if(is_file($this->mark_logo) )){ //存在する場合 ウォーターマークロゴ画像はロゴ画像の基本情報を取得します
$logo_info = getimagesize($this->mark_logo)
}
//文字列の開始位置が異なるためimagestring 関数と imagettftext 関数では、英語と中国語の文字列は Y 位置も異なります
//imagettftext 関数はテキストの左上隅に基づいています
switch($mark_postion){
case 1: //位置の左下隅
$mark_xy[0] = 5; //透かしの英語文字列座標
$mark_xy[3] = $img_info[1]-5;/ /ウォーターマークの中国語文字列座標 Y
$mark_xy[4] = 5;//ウォーターマーク画像の座標 X
$mark_xy[5] = $img_info[1] -$logo_info[1]-5; //ウォーターマーク画像の座標 Y
break ;
case 2: //右下隅の位置
$mark_xy[0] = $img_info[0]-$stre_w; //透かしの英語文字列座標
$mark_xy[1] = $img_info[1]-20 / /ウォーターマーク英語文字列座標 Y
$mark_xy[2] = $img_info[0]-$strc_w; //ウォーターマーク中国語文字列座標 X
$ mark_xy[3] = $img_info[1]-5;//ウォーターマーク中国語文字列座標Y
$mark_xy[4] = $img_info[0]-$logo_info[0]-5;//透かし画像の座標 X
$ mark_xy[5] = $img_info[1]-$logo_info[1]-5 / /ウォーターマーク画像座標 Y
break;
case 3: //左上隅の位置
$mark_xy[0] = 5 //英語の文字列座標 Y
$mark_xy[4] = 5;画像座標 [0] = $img_info[0]-$stre_w; // ウォーターマーク英語文字列座標 X
$mark_xy[1] = 5 // ウォーターマーク英語文字列座標 Y
$mark_xy[2] = $img_info[0] -$strc_w; //ウォーターマーク中国語文字列座標 //ウォーターマーク画像座標 //ウォーターマーク英語文字列座標 中国語文字列座標 /ウォーターマーク画像座標 &*/
private function img_create($source_img) {
$info = getimagesize($source_img);
switch ($info[2]){
ケース 1:
if(!function_exists('imagecreatefromgif')){
$source = @imagecreatefromjpeg($source_img){
}else{
$source = @imagecreatefromgif($source_img); );
ブレイク;
$source = @imagecreatefromjpeg($source_img);
$source = @imagecreatefrompng($source_img); = @imagecreatefromwbmp($source_img);
デフォルト:
$source = FALSE;
$ ソースを返します。
/**
* 画像の名前を変更します
* @access private
* @param string $source_img ソース画像のパス + ファイル名
* @return string $dst_name 名前を変更した画像名 (パス + ファイル名)
*/
プライベート関数 set_newname($sourse_img) {
$info = pathinfo($sourse_img);
$new_name = $this->resize_w.'_'.$this->resize_h. '_'.$info['basename'];// ファイル名を width_height_filename に変更します
if($this->dst_path == ''){ // サムネイルを保存するパスが空の場合、デフォルトはソースファイルと同じフォルダー
$dst_name = str_replace($info['basename'],$new_name,$sourse_img);
}else{
$dst_name = $this->dst_path.$new_name
}
return; $dst_name;
}
/**
* 出力画像
* @access private
* @param $im 加工画像
* @param $dst_name 出力画像名(パス+ファイル名)
* @return 出力画像
*/
public function img_output($im,$dst_name) {
$info = getimagesize($this->source_img);
switch ($info[2]) {
ケース 1:
if(!function_exists('imagegif')){
imagejpeg($im,$dst_name);
}else{
imagegif($im, $dst_name)
ケース 2:
imagejpeg($im,$dst_name);
ケース 3:
imagepng($im,$dst_name);
imagewbmp($im,$dst_name);
}
?>
php ファイルのアップロード クラスのソース コードのパッケージ化
http://www.bkjia.com/PHPjc/324046.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/324046.html

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ホットトピック



