文中にURLが含まれていたらリンク付きに変換する
/**
* 文中にURLが含まれていたらリンク付きに変換する
* @param string $str
* @return string
*/
function conv_url($str){
$pattern = "/(http|https):\/\/[-\w\.]+(:\d+)?(\/[^\s]*)?/";
$str = str_replace("\n", "<br>", htmlspecialchars($str, ENT_QUOTES, CHARSET));
//文字列にEmailが混じっている場合のみ下のスクリプト発動
if(preg_match($pattern, $str)){
preg_match_all($pattern, $str, $results);
foreach ($results[0] as $key=>$val){
$replace[] = '<a href="'.$val.'" target="_blank">'.$val.'</a>';
}
$str = str_replace($results[0], $replace, $str);
}
return $str;
}
文中にメールアドレスが含まれていたらリンク付きに変換する
/**
* 文中にメールアドレスが含まれていたらリンク付きに変換する
* @param string $str
* @return string
*/
function conv_email($str){
$pattern = "/^[_a-z0-9-.]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i";
$str = str_replace("\n", "<br>", htmlspecialchars($str, ENT_QUOTES, CHARSET));
//文字列にEmailが混じっている場合のみ下のスクリプト発動
if(preg_match($pattern, $str)){
preg_match_all($pattern, $str, $results);
foreach ($results[0] as $key=>$val){
$replace[] = '<a href="mailto:'.$val.'">'.$val.'</a>';
}
$str = str_replace($results[0], $replace, $str);
}
return $str;
}
ファイルをアップロードする
/**
* ファイルをアップロードする
* @param string $fieldName
* @return
*/
function file_upload($fieldName, $data) {
if(empty($_POST[$fieldName.'_tmp'])) return true;
//-----------------------------------------------------------
// アップロードディレクトリ
// 環境が違う場合は
//-----------------------------------------------------------
$upload_dir = UPLOAD_DIR;
$tmp_dir = UPLOAD_DIR."tmp/";
//-----------------------------------------------------------
// アップロードされたデータ
$filename_tmp = $_POST[$fieldName.'_tmp'];
// 削除フラグ!!
if(isset($_POST[$fieldName."_del"]) && $_POST[$fieldName."_del"]==1) {
if(file_exists($upload_dir.$_POST[$fieldName])) {
unlink($upload_dir.$_POST[$fieldName]);
}
} else {
// テンポラリ的においてあるファイルをupload/コピーする。
if(file_exists($tmp_dir.$filename_tmp)) {
// ファイルコピー!!
if( ! copy($tmp_dir.$filename_tmp, $upload_dir.$filename_tmp)) {
die("<br><b>faild in uploading file. </b><br>check form's enctype [multipart/form-data?]<br>". $tmp_dir.$filename_tmp." -----> ".$upload_dir.$filename_tmp."<br>");
}
/*
//////////////////////////
// passiveサーバーにもコピーする
//////////////////////////
if(!strstr(@$_SERVER["SERVER_NAME"],"dev") && !strstr(MYHOST, "dev")){
if($servers[0]==MYHOST){
$host = $servers[1];
} else {
$host = $servers[0];
}
$cmd = "/usr/bin/rsync -a " ." ".$upload_dir.$filename_tmp . " wwwuser@". $host .":" . $upload_dir;
exec($cmd, $result);
}
*/
// コピーしたら、テンポラリファイルを消す
unlink($tmp_dir.$filename_tmp);
}
}
}
csvエクスポート
/**
* csvエクスポート
* @param string $filename
* @param array $header
* @param array $data
* @return boolean
*/
function doExport($filename, $data, $header_arr=null) {
/////////////////////////////////////////////
// header
/////////////////////////////////////////////
// ヘッダーの指定がない場合は、データ配列のキーから取得する
if(empty($header_arr)) {
foreach ($data as $val) {
foreach($val as $key2 => $val2) {
if(is_numeric($key2)) continue;
$header_arr[] = $key2;
}
break;
}
}
$csv[] = implode(",", $header_arr)."\r\n";
/////////////////////////////////////////////
// data
/////////////////////////////////////////////
foreach ($data as $val) {
$tmp = array();
// 内容をフォーマット
foreach($val as $key2 => $val2) {
if(is_numeric($key2)) {
unset($val[$key2]);
continue;
}
$val2 = preg_replace("/\r\n|\r|\n/", chr(13), $val2); // 半角のダブルクォートを全角のダブルクォートに置換
$val2 = preg_replace("/\"/", "\"\"", $val2); //半角のダブルクォートを全角のダブルクォートに置換
// $val[$key2] = ereg_replace(",",",", $val2); //半角カンマを全角カンマに置換
$val2 = "\"". $val2 . "\""; //内容を半角ダブルクォートで括る
$tmp[] = $val2;
}
// カンマ区切りの一行へ
$csv[] = implode(",", $tmp)."\r\n" ;
}
if(empty($csv)) return false;
// ログを書く
$common_dao = new common_dao();
$common_dao->writeLog(7, true);
// ダウンロードするファイル名
$down_file = $filename."_".date('YmdHis') . '.csv';
/* */
////////////////////////////////////////////////////////////////////
// CSVの出力
header ("Content-Type: application/force-download");
header ("Content-Disposition: attachment; filename=" . $down_file);
header ("Content-Description: File Transfer");
header ("Content-Length: " . strlen(join("",$csv)) );
foreach ($csv as $mval) {
echo mb_convert_encoding($mval, "SJIS-win", CHARSET);
//echo $mval;
flush();
ob_flush();
usleep(10000);
// exit();
}
}
パスワードのハッシュ化
// パスワードのハッシュ化
function getPassHash($password){
$salt = PASSWORD_SALT;
return hash('sha512', $password . $salt);
}