PHPの拡張モジュール「pthreads」を使ってマルチスレッド処理ができれば、PHPの弱みである処理速度を向上できるかもしれません。 PHPの開発で並列処理はほとんど使われていません。確かにシンプルにシングルスレッドで同期したプログラムを書きたくなるものの、並列処理を取り入れることでパフォーマンスを大きく改善できる可能性があります。 この記事ではpthreadsという拡張モジュールを使ってPHPでマルチスレッド処理をする方法を紹介します。必要な環境はZTS(Zend Thread Safety)バージョンのPHP 7.xとpthreads v3です。執筆時点では、PHP 7.1ユーザーはpthreadsリポジトリーのマスターブランチからインストールする必要があります。詳しくは『How to Install PHP Extensions from Source(サードパーティー拡張モジュー
こんにちは。 例えばですが <script type="text/javascript"> var count = 0; function calc() { count ++; } function regist() { document.frmRegist.count.value = count; document.frmRegist.submit(); } </script> <form name="frmRegist" action="DB登録.php" method="post"> <input type="hidden" name="count" value=""> </form> <input type="button" value="countを加算" onclick="calc();"> <input type="button" value="計算結果を送信" onclic
下書き保存したと思ってたらそんなものは無かった・・・ 何を書いてたのやら思い出しつつ書き直してみる。 なんとなく覚えてるんですよ。うっすらと。 多分あれだ、PHPでチェックボックスとかラジオボタンとか扱う時の話。 下書き保存してたはずなのに記事が無かったのは何故? <form method="post"> <input type="checkbox" name="chk" value="1" />下書きしたと思い込んでるだけ <input type="checkbox" name="chk" value="2" />雪のせい <input type="checkbox" name="chk" value="3" />電池が切れた <input type="checkbox" name="chk" value="4" />ネジが外れた <input type="submit" value="
「ぱふぅ家のホームページ」の動的なページは「PHP (Hypertext Preprocessor)」によって記述されている。 PHP は、オープンソースのサーバ・サイド・スクリプト言語だ。サーバ・サイド・スクリプトはCGIとは異なり Web サーバが直接実行できるので、サーバにかかる負荷が小さく、応答の早いページを提供することが可能である。 PHPは、C や Perl に近い文法体系を持っているので、これらの言語に慣れている方にお勧めできる。また、C++ や Java、Python、Ruby のように Class を使ったオブジェクト記述も可能だ。 多くの OS(Windows, Linux, macOS X)、Web サーバ(Apache, IIS, PWS)上で動作する点も強みである。 このコーナーでは、PHP を初めて使うという方から、正規表現を使った日本語処理、クラウド連携グラフ
覚え書き程度にメモしています。 ASP/PHP/JS/HTML5/CSS3/Android/Objective-C/FLEX/VB/Javaなどなど データベースを利用できない環境でデータをどう保持していこうか。 ありきたりかもしれませんがXMLかなと。。。 PHPではSimpleXMLを使うかDOMを使うか悩みそうなところですが 今回はDOMを触ってみました。 いくつかやったことをメモ程度に。 XMLファイルを生成する // ファイル名 $filename = 'sample.xml'; // Domを生成 $dom = new DomDocument('1.0', 'utf-8'); $dom->formatOutput = true; // 元となる要素を生成 $root = $dom->appendChild($dom->createElement('root')); $head
PHPのソースコードをビルドしてテストしてみたら、いくつかのテストが失敗してしまいました。今回は、テストが失敗した理由を探ってみます(編集部) テスト失敗の原因を調べる 前回からPHPの具体的なビルド方法を解説しています。手始めにエクステンションをすべて無効にしてビルドしてみました。configureスクリプトの実行とビルドまで問題なく進めることができましたが、その後、「make test」でテストを実行したところ、いくつかのテストが失敗していることが分かりました。 「make test」によるテストは、そのソフトウェアの開発者にとっては、新たにバグを作り込んでいないことを確認する手段となっています。一般向けにソフトウェアをリリースするときは、テストの結果はすべて成功となっているはずです。それなのに失敗になるテストがあるということは、環境による問題があるのか、ビルド時に何らかのトラブルが起
たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸本)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸本の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸本でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
さて、前回家に帰ってからうまくいかなくなってしまったAPIでのアクセス、とりあえずできるようになったので。AKB48で学ぶFacebookアプリとファンページの連携方法 (ref. web探検隊)を参考にしたことは、書いた通り。 <?php require_once 'facebook-php-sdk/src/facebook.php'; // Create our Application instance. $facebook = new Facebook(array( 'appId' => 'xxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxx', 'cookie' => false, )); $session = $facebook->getSession(); if (!$session) { $url = $facebook->getLoginUr
Facebookでファンページを作ったはいいものの、独自のコンテンツを提供しようとしたら、アプリと連携をさせたいところですよね。そこで、連携方法を調べてみました。ここで必要となるのはFacebookの 自分で開設したファンページ 自分で開発するアプリケーションとなります。連携することで、サーバーからファンページへ以下のような、自動投稿が可能になります。 ファンページを作るファンページの作り方はこちらのエントリーを参照してください。5月に書いたエントリーですが、それ程、変更されていません。アプリケーションを作るfacebook アプリの作り方・PHP 編(2010 年 10 月版)を参照して。マイアプリケーションのページから新規アプリケーションを作成してください → http://www.facebook.com/developers/apps.phpSanbox Mode ONにしておいた
『プログラミング言語人気TOP10の簡易解説』という記事が人気を呼んでいたのだが、軽快な語り口で面白い読み物だが、語弊がありそうな部分がある。その中で特に、「(Javaは)実行速度はCに及ばないもののスクリプト言語よりは数十倍速い」とある部分が気になったので、簡単な例で検証してみた。 1. Python、PHP、Java、Cで不適切な速度比較を行う 最初にコーディングが不適切な場合にプログラミング言語の速度比較を行うと、通説と異なる結果になる事を示したい。 Ubuntu Linuxで、オブジェクトをなるべく使わずに、順列の整数を100万個生成し、ランダムにシャッフルし、クイックソートを行ったときの経過時間を、timeコマンドで計測したものだ。ソート前、ソート後に配列の内容を、", "で連結して標準出力に書き出している。また、PythonはAPIをなるべく使ったもの(*無し)と、なるべく使わ
データベースへの接続もクラスにしてみたいと思います。 うまく作れば、DBが変わっても他のソースに与える影響を少なくすることも できそうです。しかし、DB用のクラスはいまだにどんな構造にするか悩みますね。 自前で作らなくてもPEARのDBクラスやdbx、PEAR::DB_DataObjectなどもあります。 とりあえず経験値を上げるということで自作してみます。 まず、接続部分をコンストラクタで切断をデストラクタで行うようにします。 <?php class B3DB { private $link_id; private $pconnect; function __construct($server,$user,$password,$database,$presistency = true){ $this->pconnect = $presistency; if($presistency){
PHPには、ストリームラッパーというファイルなどへのアクセスを抽象化するしくみがあります。普段よく使う http:// とかがそうです。 組み込みで提供されるストリームラッパーは以下です。 ファイルシステム HTTP と HTTPS FTP と FTPS PHP 入出力ストリーム 圧縮ストリーム データ (RFC 2397) Glob Phar PHP: Supported Protocols and Wrappers - Manual それぞれどういうふうに使うものなのか試してみました。 ファイルシステム /path/to/file.ext relative/path/to/file.ext fileInCwd.ext C:/path/to/winfile.ext C:\path\to\winfile.ext \\smbserver\share\path\to\winfile.ext f
PHP_FUNCTION(fname) は、以下のようなマクロで、 // main/php.h: #define PHP_FUNCTION ZEND_FUNCTION // Zend/zend_API.h: #define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name)) #define ZEND_FN(name) zif_##name #define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS) // Zend/zend.h: #define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval *this_ptr, int return_value_used TSRMLS_
Copyright(c) 2002-4 Coop!(コープ). http://www.ecoop.net/coop/ GDライブラリとはPHP用の強力な画像処理関数を提供するバイナリライブラリです。ここではこのGDライブラリをWindows環境(バイナリパッケージ)で使えるようにするための方法を紹介します。 PHP4の公式リファレンスには「イメージを作成・操作する機能を使うにはイメージ関数のGDライブラリとともにPHPをコンパイルする必要があります」のように書かれていて、Windowsのバイナリパッケージのデフォルトではphpinfo()で作成される仕様ページを見てもGDが一緒にコンパイルされている様子はありません。多くのWindowsユーザーはここで挫折しているのではないでしょうか。 英語のわかる方はさらにPHPの公式サイトからGDライブラリ配布サイトへとび、GDのソースをダウンロードす
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く