[PHP]同じ文字を個数指定で出力
同じ文字を個数指定で出力
<?php $count = 5; echo implode('',array_fill(0, $count, "〇")); ?>
結果
〇〇〇〇〇
同じ文字を個数指定で出力
<?php $count = 5; echo implode('',array_fill(0, $count, "〇")); ?>
結果
〇〇〇〇〇
バリデーション設定テンプレ
public $validation = array( 'login' => array( array( 'field' => 'email', 'label' => 'メールアドレス', 'rules' => 'trim|xss_clean|required', 'errors' => array( 'required' => '%sは必須です。', 'custom_validation' => '%sかパスワードが異なります。', ), ), array( 'field' => 'password', 'label' => 'パスワード', 'rules' => 'trim|xss_clean|required', 'errors' => array( 'required' => '%sは必須です。', ), ), ), 'update' => array( array( 'field' => 'company', 'label' => '会社名', 'rules' => 'trim|xss_clean|max_length[50]', 'errors' => array( 'max_length' => '%sは50文字以下にして下さい。', ), ), array( 'field' => 'zip', 'label' => '郵便番号', 'rules' => 'trim|xss_clean|regex_match[/[\d]{3}\-[\d]{4}/]', 'errors' => array( 'regex_match' => '%sは[半角数字3桁-半角数字4桁]で入力して下さい。', ), ), array( 'field' => 'address', 'label' => '住所', 'rules' => 'trim|xss_clean|max_length[100]', 'errors' => array( 'max_length' => '%sは100文字以下にして下さい。', ), ), array( 'field' => 'tel', 'label' => '電話番号', 'rules' => 'trim|xss_clean|regex_match[/^[\d]{2,5}\-[\d]{1,4}\-[\d]{4}$/]', 'errors' => array( 'regex_match' => '%sは[半角数字2~5桁-半角数字1~4桁-半角数字4桁]で入力して下さい。', ), ), array( 'field' => 'email', 'label' => 'メールアドレス', 'rules' => 'trim|xss_clean|valid_email|max_length[255]', 'errors' => array( 'valid_email' => '%sを正しく入力して下さい。', 'max_length' => '%sは255文字以下にして下さい。', ), ), array( 'field' => 'password', 'label' => 'パスワード', 'rules' => 'trim|xss_clean|min_length[6]|max_length[12]|regex_match[/^[\w\-]+$/]', 'errors' => array( 'required' => '%sは必須です。', 'min_length' => '%sは6文字以上にして下さい。', 'max_length' => '%sは12文字以下にして下さい。', 'regex_match' => '%sに使用出来るのは半角英数字、ハイフン、アンダースコアです。', ), ), array( 'field' => 'note', 'label' => '備考', 'rules' => 'trim|xss_clean|max_length[500]', 'errors' => array( 'max_length' => '%sは500文字以下にして下さい。', ), ), ), );
管理画面フッターWordPressリンクを非表示に
/** * 管理画面 * フッターWordPressリンクを非表示に */ function custom_admin_footer() { } add_filter('admin_footer_text', 'custom_admin_footer');
textareaでtab
var addTabKeyEvent = function($textarea){ $textarea.on('keydown',function(e){ if(e.keyCode == 9){ e.preventDefault(); }else{ return; } var $this = $(this); var start = this.selectionStart; var v = $this.val(); $this.val(v.substring(0,start) + "\t" + v.substring(this.selectionEnd)); this.selectionStart = this.selectionEnd = start + 1; }); }; addTabKeyEvent($('textarea'));
MovableType on windows xampp
■ メール送信チェックをする場合は C:\xampp\sendmail\sendmail.iniの下記の部分を設定しておく auth_username=xxxxx.xxxx auth_password=xxxxxxx ■フォルダ構成 /mt-static /cgi-bin/mt ■アクセス http://yourdomain/cgi-bin/mt/ ■ MovableTypeへサインイン ■ スタティックウェブパス /mt-static スタティックファイルパス C:\xampp\htdocs\mt_test\mt-static ■ システムチェック 次へ ■ ActivePerlインストール インストール先C:\xampp\perl C:\xampp\perlに元々あったファイルは削除 ■ コマンドプロンプト ppm Enter 設定 Areas Prefix:C:\xampp\perをチェック > ok dbd-mysql インストール ■ sendmailパス C:\xampp\sendmail\sendmail.exe ■ テンポラリーディレクトリ C:\xampp\tmp
テーマのfunctions.phpに追記する
/** * ルーティング(リライトルールの追加) * ここの設定を反映させるには下記の操作が必要 * 管理画面にて「設定」->「パーマリンク設定」->変更せずに「変更を保存」 * add_rewrite_ruleの第三引数の説明は下記 * 'top' または 'bottom'。'top' の場合、ルールは WordPressのすべての既存ルールに優先する。'bottom' の場合、ルールはすべての既存ルールがマッチしない場合に検査される。 */ function add_user_rewrite_rules() { add_rewrite_rule('^hoge/?$', 'index.php?c_controller=hoge&c_method=', 'top'); add_rewrite_rule('^hoge/([^/]*)/?$', 'index.php?c_controller=hoge&c_method=$matches[1]', 'top'); } add_action('init', 'add_user_rewrite_rules'); /** * ルーティング(リライトルールの追加)関連追加処理 * c_type,c_actionをパブリッククエリ変数として登録 * get_query_var('c_controller')で取得 */ function add_user_routes_query_vars($query_vars){ $query_vars[] = 'c_controller'; $query_vars[] = 'c_method'; return $query_vars; } add_filter('query_vars','add_user_routes_query_vars');
Imagickサンプル
<?php $_data = array( 'dir' => './output/', 'filename' => date('YmdHis'), 'filetype' => 'png', 'fontsize' => 24, 'width' => 1000, 'height' => 640, 'text' => 'sample text', 'textcolor' => '000000', 'color' => 'eeeeee', ); $filepath = realpath($_data['dir']).DIRECTORY_SEPARATOR.$_data['filename']; $draw = new ImagickDraw(); $draw->setFont( realpath('./font/GenEiGothicP-Regular.otf') ); $draw->setFontSize($_data['fontsize']); $draw->setFillColor(new ImagickPixel('#'.$_data['textcolor'])); $draw->setTextAlignment(Imagick::ALIGN_CENTER); $draw->annotation($_data['width']*0.5,$_data['height']*0.5, $_data['text'] ); $canvas = new Imagick(); $canvas->newImage($_data['width'], $_data['height'], new ImagickPixel('#'.$_data['color']), $_data['filetype']); $canvas->drawImage($draw); $canvas->writeImage($filepath); $canvas->clear();
UIView Extension #7
var isVisible:Bool{ get{ return !self.isHidden } set{ self.isHidden = !newValue } }
フィールド名を変数で指定
カスタムフィールド
CFEntryDataAddress1~CFEntryDataAddress10
CFEntryDataDetailImage1~CFEntryDataDetailImage10
を表示
<MTFor var="x" from="1" to="10"> <MTIgnore>テキストの時</MTIgnore> <MTSetVarBlock name="_CFEntryDataAddress"><MTCFEntryDataAddress<MTVar name="x">></MTSetVarBlock> <MTSetVarBlock name="_CFEntryDataAddressValue"><MTVar name="_CFEntryDataAddress" decode_html="1" mteval="1"></MTSetVarBlock> <MTIf name="_CFEntryDataAddressValue" ne=""> <MTVar name="_CFEntryDataAddressValue" encode_html="1"> </MTIf> <MTIgnore>画像の時</MTIgnore> <MTSetVarBlock name="_CFEntryDataDetailImage"><MTCFEntryDataDetailImage<MTVar name="x">></MTSetVarBlock> <MTSetVarBlock name="_CFEntryDataDetailImageValue"><MTVar name="_CFEntryDataDetailImage" decode_html="1" mteval="1"></MTSetVarBlock> <MTSetVar name="_CFEntryDataDetailImageAsset" value=""> <MTIf name="_CFEntryDataDetailImageValue" ne=""> <MTSetVarBlock name="_CFEntryDataDetailImageAsset"> <MTCFEntryDataDetailImage<MTVar name="x">Asset> <img src="<MTAssetThumbnailURL width="450" force="1">"> </MTCFEntryDataDetailImage<MTVar name="x">Asset> </MTSetVarBlock> </MTIf> <MTIf name="_CFEntryDataDetailImageAsset" ne=""> <MTVar name="_CFEntryDataDetailImageAsset" decode_html="1" mteval="1"> </MTIf> </MTFor>
deep-link.js
aタグタップでアプリ起動 > 無ければストアへ遷移
サンプル:/js/69/
GitHub:https://github.com/timseverien/deep-link.js
サンプルにおける修正点1
最後に’;end’が付いてないと動かない端末がある
if(isAndroidBrowser) { return 'intent:' + app.split(':')[1] + '#Intent;scheme=' + scheme + ';package=' + store + ';S.browser_fallback_url=' + encodeURI(href)+';end'; }
サンプルにおける修正点2
var init = function(){ var elements = document.getElementsByTagName('a'), i = elements.length; while(i--) parseElement(elements[i]); }; document.addEventListener('DOMContentLoaded',function(){ init(); });