サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
scrap.php.xdomain.jp
PHPが実行される前に設定ファイルやデバック用のクラスなどを呼び出したりしたいことがあります。 簡単にPHP実行前に指定のPHPを実行してくれる設定が存在するのです。 これを使えばデバック等が簡単に出来るようになります。 参考:PHPマニュアル ini.auto-prepend-file 設定は簡単で、以下をphp.ini、.htaccessなどの設定ファイルに追加するだけです。 php_value auto_prepend_file /path/to/debug.php これで、実際の処理のプログラムの実行前に上記で指定したファイルを読み込んでくれます。 以下のようなファイルを読み込むとvar_dumpにpreを付けてくれる関数を読み込んでくれます。 <?php if (!function_exists('pre_dump')) { function pre_dump() { echo
PHPはとても柔軟なプログラムのためオーバーフローって基本的に起こらないのですが、 特定のパターンだと数値のオーバーフローが起こってしまう場合があるので、 今回はPHPでの数値オーバーフローのご紹介。 PHPでのINT最大値 PHPのint型の最大値は32bit環境では2147483647、64bit環境では9223372036854775808となります。 プログラムによりますがint型で宣言されているものがint型の桁数を超えた場合にオーバーフローが発生します。 でも、PHPは柔軟なプログラムのためint型の最大値を超えた場合は自動的にfloat型になります。 <?php // 桁数が多いため32bit版での説明 $max = PHP_INT_MAX; // 2147483647 var_dump($max); var_dump($max + 1); 実行結果 int(21474836
FuelPHPではコマンドライン上で使えるようにサポートされているので今回はFuelPHPでのコマンドライン実行の方法をまとめました。 Oilの用意 自分の環境を確認してFuelPHPのoilファイルが入っているかの確認をしてください。 入ってない場合は、以下からダウンロードすればOK。 FuelPHP公式 GitHub:Fuel タスクの確認・実行 Oilを使って有効なタスクの確認 ※実行はoilファイルとの場所で実行 php oil refine 実行結果 Usage: php oil [r|refine] Description: Tasks are classes that can be run through the the command line or set up as a cron job. Available tasks: php oil refine robots p
前回、Linuxインストール用USBの作成を説明しましたが、今回はタブレットにUbuntuを導入した時のことを書いていきます。 購入した機種のせいでUbuntuを入れるのにだいぶ苦労しました・・・orz 必要なもの ・インストールするタブレット 今回私が購入したのはOS無しのDELL 「DELL Venue 11 Pro(7130)」 ・LinuxインストールUSB ・USBハブ(3ポート以上推奨) ・キーボード ・マウス 購入したタブレットにUSBポートが1つしかないので、USBハブが必須となります。 インストール方法 1.起動中にF2を押下してBIOSのセットアップ画面に行く。 2.Boot順番をUSBポートを一番最初に起動するように変更。 3.設定を適用して「EXIT」 ここからは後はUbuntuのインストールが行われるので、画面に従っていけばOKです。 ただ、タブレットの機種によっ
PHPマニュアルに型の比較表があったので、見やすいようにして載せました。 PHP 型の比較表 PHP 関数による $x の比較 式 gettype() empty() is_null() isset() boolean : if($x)
VBSってInternetExplorerを操る事が出来るんです。 うまく使用すればログイン画面とか自動でログインさせたりなど、面白いことが出来ます。 サンプルのコードをメモ帳に貼り付けて「.vbs」の拡張子で保存すれば簡単に実行されます。 IEを起動・終了させる IEに特定のURLを指定して起動した後、終了させるだけです。 IEの操作をするための基本。 Option Explicit use_ie ' IE用 Subプロシージャ Sub use_ie() Dim ie ' IE用変数 Set ie = CreateObject("InternetExplorer.Application") ' IE起動 ie.Navigate "https://www.google.co.jp" ' URL ie.Visible = True ' IEの可視化 waitIE ie ' IEの起動待機 '
開発初心者や突貫開発時によく陥ってしまう罠がリリース後対応です。 大体のシステムが開発完了で終わりではありません。 その後のバグ対応・時流に合わせてのシステムの変更等様々なことがリリース後には待ち構えている場合があります。 開発時にリリースのことを考えないと大変なことになりやすいのでご注意ください。 必ず開発・本番環境は別に作れ! 小規模開発に多いのですが、開発環境をそのまま本番環境にしてしまうパターンがあります。 こういうことをしてしまうと、リリース後にバグ対応等で改修する場合どこの環境でテストをするのか・・・ それに再度開発環境を作成するところからしないと行けません。 なので、開発環境は後に使うことがあるので本番環境にそのまま格上げ等はしないでください。 もし開発環境→本番環境にするのなら別途開発環境を構築し直すようにしてください。 出来れば開発・検証・本番の3環境を構築しておくと色々
プログラミングをする方が最近増えているかと思います。 仕事でプログラミングを行う職業プログラマ、趣味でプログラムを行う趣味プログラマ、就活のスキルために勉強するプログラマ等、最近色々あるみたいですね。 ただ、プログラムが出来る=開発が出来るのではないのです。 プログラムと開発って似て非なるものです。 そしてIT業界が欲しいのは開発が出来る人間です。 開発ってプログラミングのことでは? 厳密には違います。 開発とはプログラミングを含めたソフトウェアを作ることです。 例えて言うなら開発は家を建築し終えるまでことです。 プログラミングはその中で大工の作業のみしか担当していません。 一連の工程を家を建てることに例えてみると以下のようになります。カッコ内は開発の作業。 お客様と家のことを決める(要件定義) ↓ 設計(設計) ↓ 基礎工事(インフラ系作業) ↓ 建築(プログラミング) ↓ 内装・外装(
PHPのプログラムでWebAPIなどにアクセスする時にfile_get_contentsを使用することがあります。 この時にGETではなくPOST送信にてパラメータを送信する必要がある時があるので今回はそのメモ。 サンプル PHPマニュアルにあるfile_get_contentsを参考にさせて頂きました。 file_get_contents 送信プログラム メインとなる送信プログラムです。 <?php //POSTデータ $data = array( "param1" => "data1", "param2" => "data2" ); // URLを指定 $url = "http://localhost/test/post.php"; // POST用関数 function http_post ($url, $data) { $data_url = http_build_query ($
HTML5を利用して緯度・経度等の位置情報を受け取ることが出来るようになりました。 これによってWebページで位置情報を取得して様々なことに使えます。 サンプルコード <script> function getPosition(){ // Geolocation API使用可否判定 if (navigator.geolocation) { // Geolocation APIを利用可能 // 現在の位置情報を取得 navigator.geolocation.getCurrentPosition(successCallback, errorCallback); } else { // Geolocation APIを利用不可 document.getElementById("show_result").innerHTML = "この端末では使用できません"; } } // 取得成功時にユーザ
サンプル 通知ボタンをクリックすると以下のように通知許可を求められるので許可してください。 許可された後、デスクトップに通知が表示されます。 通知 ソース サンプルで使用したソースの紹介。 <script> function show() { // Notificationを取得 var Notification = window.Notification || window.mozNotification || window.webkitNotification; // Notificationの権限チェック Notification.requestPermission(function (permission) { // console.log(permission); }); // 通知インスタンス生成 var instance = new Notification( "お知らせタイ
simplexml_load_stringを使ってXMLを読み込み時にバイトエラーが発生した時の対処方法。 simplexml_load_stringにてXMLを読もうとしたらエラーが発生・・・ Warning: simplexml_load_string(): input conversion failed due to input error, bytes 0x85 0xE3 0x80 0x80 原因 原因は文字コードでした。 UTF-8の環境でSJISのXMLを読み込もうとして発生。 mb_convert_encodingを使用して文字コードを変換するだけではXMLの読み込みが出来ないってのが原因でした。 対処方法 対処方法としては以下の手順を実行。 1.文字コードを変換(SJIS→UTF-8) 2.XMLの定義を変更(encoding=”Shift_JIS” → encoding=
データを登録する時に同一のデータがある場合は挿入したくないって時に使えるSQL。 同一のデータが入っている場合エラーが出たりで困ります。 これを使用すれば同一行は挿入しないようにしてくれます。 説明用サンプルテーブル CREATE TABLE IF NOT EXISTS `M_USER` ( `MAIL_ADDRESS` varchar(50) DEFAULT NULL COMMENT 'メールアドレス', `PASSWORD` varchar(50) DEFAULT NULL COMMENT 'パスワード', PRIMARY KEY (`MAIL_ADDRESS`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ユーザマスタ' AUTO_INCREMENT=1 ; 通常のSQL INSERT INTO M_USER VALUES ('hoge
最近の開発で仕様書等のドキュメント類を書くことが少なくなりました。 私は主に業務系のWebサービスを作成してましたが、最近はオープン系のサービスも受け持つことも多いのですが、仕様書やテストのエビデンスがオープン系のお客様の場合は求められることが少ない・・・ というかほぼない。 何故、お客様は仕様書を求めないのか? 予算を削りたい お客様にとって仕様書なんて見てもわからないもの貰ってもしょうがない。 貰ってもしょうがないものなら作ってもらわないで、削ってしまおうって考えがあります。 テストのエビデンスも同様です。 これは仕様書の作成やエビデンスの作成に工数が掛かるため、工数の削減を計って予算を削りたいという考えがあります。 例えば、おおまかに計算しますが以下のようなシステムがあります。 開発工数:1人月 検証工数:0.5人月 設計工数:0.5人月 ドキュメント作成工数:0.5人月 管理工数:
私が使っている日本語にも方言があるようにJavascriptにも方言があります。 方言はJavascriptを使用する上で動かないブラウザがあるので気をつけなければなりません。 方言の名は「JScript」 JavascriptとJScriptを混同すると思わぬバグが発生するので注意してください。 Wikipedia JScript JScriptとはMicrosoft社製のJavascriptです。 時々、Javascriptと混同する人が居て問題になります。 これはMicrosoftのブラウザ「Internet Explorer」のJavascriptエンジンに使用されているのがJscriptに対応しているためです。 IEの仕様については以下を参照。 Wikipedia Internet_Explorer IEを標準で使用している人にはでは問題はないのですが、オープンのWeb系を使用す
先日、PHP5技術者認定 初級試験を受けてみました。 私が受かるためにやったことと試験の注意事項を軽くまとめてみます。 参考にならないかもしれませんが、見てみてください。 試験の説明 まずは簡単に試験自体の説明です。 PHP5技術者試験とは、一般社団法人 PHP技術者認定機構が行っている試験です。 試験のレベルとしては現在3種類あります。 PHP5技術者認定初級試験 PHP5技術者認定上級試験 PHP5技術者認定ウィザード 各リンク先に設問数や時間等が記載されていますが、私が受けた初級試験は以下の通り。 ・設問数 40問 ・時間 60分 ・合格ライン 7割正解 ・出題形式 選択式(複数または単一選択) 出題範囲 初級試験、上級試験共にオライリーから発売されている本を出題範囲としています。 初級試験は「初めてのPHP5」とオンラインマニュアルから、上級試験は「プログラミングPHP 第3版」と
PHPではセッションハイジャックという攻撃方法があります。 攻撃防ぐ簡単な方法としてはセッションIDを切り替える方法で、対策を行えます。 今回はその対策方法のご紹介。 session_regenerate_idを使用 phpマニュアル:session_regenerate_id session_regenerate_idを使用すると呼ばれる毎にセッションIDを新しく書き換えます。 これをアクセス毎に呼び出すようにするとセッションハイジャック対策になります。 session_regenerate_id使用サンプル <?php session_start(); $old_sessionid = session_id(); session_regenerate_id(); $new_sessionid = session_id(); echo "古いセッション: $old_sessionid<b
シンプルで使いやすくWeb上でSQLを整形してくれる「SQL indent」のご紹介。 SQLの整形を行えて、履歴機能とクリップボードへのコピー機能がありとてもありがたいWebサイトです。 下図はサイトトップの画像ですが、これだけです。 使い方もサイト同様にとてもシンプルで真ん中のテキストエリアにSQLを入力して、下部にある「Run」ボタンもしくは「Shift + Enter」を押すと整形を行ってくれます。 実行結果が「Run」ボタンの下に表示されます。 右上にある保存マークをクリックするとクリップボードにコピーされます。 サイトトップの右上「History」マークをクリックすると今まで整形を行った履歴の削除とクリップボードへのコピーを行えます。 サイトトップの右上の歯車マークをクリックすると設定が行えます。 設定でいじれるのはインデントの半角スペースの下図のみで、設定を適用したい場合は「
Googleにはとても便利なことに喋ってくれる方法があるのです。 Google翻訳の音声再生ボタンを使用すると喋ってくれますがこれだと自分の思い通りにすぐ喋らせられないです。 今回はそんなGoogleさんに思い通りに喋って貰える方法をご紹介。 方法はとても簡単Google Text To Speech(TTS)を使用すればいいだけ。 使用方法もとても簡単で、以下のURLにアクセスするだけでOK。 http://translate.google.com/translate_tts?tl=ja&q=こんにちは 簡単な説明は以下のとおりです。 http://translate.google.com/translate_tts?tl=[言語コード]&q=[喋らせたい内容] 言語コードは日本語なのでjp、英語だとen、喋らせたい内容は100文字までとなっているらしいです。 前回紹介した「入力テキスト
コピペプログラマがコピペプログラマの脱却を目指します。 そのためのプログラムのメモやツールをご紹介していきます。
バッチ用プログラムを書いた時に一々プログラム側でログの出力をするのが面倒って時に使えます。 ログの出力先に指定して、dateコマンドを使ってログファイルを出力します。 サンプルcron 0 0 * * * /bin/sh /root/batch.sh > /root/log/bat_`date +%Y%m%d`.log ですが上記のままだとエラーに・・・ 上記のままだと以下のエラーが出力されます。 /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: unexpected end of file 原因は「%」でした。 cronだと「%」はコマンドの終わりと解釈されるようです。 なのでシングルクォートが閉じられていない等のエラーが出ていました。
スマートフォンアプリを作成するには対応OS毎に開発言語の習得が必要となりますが、こちらを使用すればWeb系プログラマでもスマートフォンアプリの作成が可能になります。 ハイブリッドアプリ 今までだとAndroid側だとJava、iOS側だとObjective-C、swiftの習得が必要でしたが、ハイブリッドアプリだとOS側のWebViewでHTMLを呼び出して処理を実行させることでJavaやXcodeの知識がなくても開発が可能になります。 そのため、OS特有の言語の習得は不要となります。 クロスプラットフォーム Android、iOSの開発方法、言語は違いますがハイブリッドアプリだとWebViewから呼び出されるのでHTML、CSS、Javascriptを習得していればOS関係なく作成することがかのうとなります。 Web知識で開発が可能 ハイブリッドアプリ開発ではHTMLやCSS、JavaS
HTML5でキャプチャした画像をPHPサーバに送信して保存する方法です。 これによってWebブラウザ上で撮った画像をサーバに送信、保存することが可能です。 以前のHTMLでカメラから映像、画像を取得する方法を参照してください。 HTML5 getUserMedia APIでカメラが使ってみる Javascript側に以下を追加。 キャプチャ画像を撮影する後にさらに関数を追加してください。 // Ajaxにて画像データを送信する var saveSnapshot = function() { var hostUrl= 'http://localhost/save.php'; // データ送信先 $.ajax({ url: hostUrl, type:'POST', dataType: 'json', data : {img : document.getElementById('img').s
IT関連の職業の人ならおそらく一度は見た覚えがある画像、「顧客が本当に必要だったもの」について考えてみました。 本当にこの画像のようなことにならないこと祈ります。 顧客が説明した要件 三段ブランコ 顧客自体が自分に必要なものを理解できていない。 これは一体どんなブランコなのか? プロジェクトリーダの理解 幹に当たるブランコ プロジェクトリーダーは「木の枝に紐がついた板を結ぶ」というのを理解できたが動きまでは理解できなかった。 アナリストのデザイン 幹が繰り抜かれたブランコ アナリストが分析を行って、「ブランコは揺れなければいけない」と解釈したが大本の幹を切ってしまう。 プログラマのコード 幹に結ばれたブランコ 「木に紐がついた板を結ぶ」というのを理解してたが、それが枝に結ぶというのを理解できていない。 プログラマが理解できていないことと、プログラムが動こないことを示唆しているようです。 営
WebカメラがついていないPCで仮想的にWebカメラを導入できるソフトManyCamの紹介。 ダウンロードページ http://download.manycam.com/ ※2014/07/10時点でversion 4.0 使い道としてはWebカメラのないPCやWebカメラはあるが使用したくない場合等に使用可能です。 インストールは簡単で、落としてきたexeをクリックするだけです。 ただし、言語の設定やホームページの設定のチェックがあるので気をつけてください。 起動直後のManyCam 主な使い方 1.Webカメラ画面 Webカメラの内容として出力する画面です。右クリックで出力するものをビデオファイルや画像、デスクトップなど色々選択できます。 2.モード切り替え カメラモードとビデオモードを切り替えます。 3.起動 カメラモードでボタンを押すと現在のライブカメラの状態を画像として保存。ビデ
file_get_contentsがレンタルサーバー等で使えない時の対処方法です。 URLからファイルを読み込む設定のallow_url_fopenの設定がセキュリティのためOFFになっているのでfile_get_contentsが出来ないことがあります。 何故、allow_url_fopenがOFFになっているのか? これは外部のファイルを参照した場合、ファイル内に攻撃性のあるコードやウィルスが仕組まれていた場合、ファイルを読み込んだサイトの情報の流出やサイト閲覧者に攻撃を加える可能性があるためです。 上記に書いた、セキュリティの観点からレンタルサーバー等では外部URLのファイルを読み込めないようにしているところがあります。 ただ、それでも使いたい場合はありますよね・・・ 対処方法は色々です。 php.iniの設定を変更できるのであればphp.iniを変更。 ;allow_url_fop
上記、地図のサンプルコード var marker = new google.maps.Marker({ position: new google.maps.LatLng(35.68978889880994, 139.70049233458258), title: "新宿駅", map: map }); マーカーのプロパティ プロパティ説明
最近だとクラウドにデータを入れて保存等を行うことがあります。 それはプログラムも一緒です。バッチ等で必要なデータをクラウドに保存することがあります。 今回はGoogle Drive ApiをPHPで使用する方法のご紹介。 認証の方法とファイル一覧の取得、ファイルの追加。 ※現在2014/06/09の最新状態のGoogle Api php clientを使用しています。 アップデート等がありますとサンプル通りに動かない可能性があります。 Google APIs Console の Drive API を ON にする Google Api ConsoleにアクセスをしてAPIs & auth -> APIsでAPIのリストを表示。 Google DriveのAPIを探して有効にしてください。 Google Drive Api の接続情報の作成 有効にしたGoogle Drive Apiから設
AndroidのGoogle Chromeである設定を行うと自動的にProxyを挟んでしまい、IPが日本国外になってしまいます。 これはGoogle Chromeのデータ圧縮機能により発生しました。 データ圧縮を有効・無効にするには以下の手順で出来ます。 1.Google Chromeを起動 2.Settings(設定)を開く 3.Bandwidth management(帯域幅)の管理 4.Reduce data usage(データ使用量の削減) 5.右上のON・OFFを切り替える。 これがONだとアメリカにあるGoogleのProxyサーバを経由してデータの圧縮を行っているので、IPがアメリカになってしまいます。 そのため、国外限定のWebサービス等を閲覧しようとすると使用出来ないことがあるので注意してください。 逆に、ONにしてるとアメリカのIPになる利点もありますがね・・・
次のページ
このページを最初にブックマークしてみませんか?
『ScrapEngineer | 切り貼りだらけのコピペエンジニア』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く