問題タブ [php-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP 拡張機能のコンパイルを開始する
私は簡単ですが、集中的なコードを持っています。PHP拡張機能にコンパイルしたいと思います。それを行うための最も簡単な/ベストプラクティスは何ですか?
私は Java の経験があるので、C / C++ コードを書くことは問題になりません。ただし、途中での落とし穴は避けたいと思います。
簡単なチュートリアルやウォークスルーは、私が見つけられなかったものです。たくさんの例がありますが、これを行うのが初めての人を対象としたものはありません。
特に素敵なCの癖がすべてあるので、それは私よりも困難な道のように見えます。
php - 複数のリクエストにまたがる拡張機能の Zend グローバル変数
タイトルが示すように、複数のクライアントからのリクエストにまたがって情報を維持したいと考えています。簡単な例を挙げて、私が何を望んでいるのかを説明しましょう。この例は、私の質問を説明するためのものであり、投稿の目的ではありません。
例: さまざまな php スクリプトについて、サーバーがこれまでにすべてのクライアントから受け取ったリクエストの総数を数えたいと考えています。つまり、複数の異なるページに対して複数の異なるクライアントから送信されるリクエストの合計数です。これで、そのグローバル カウントを読み取って PHP プログラマーに返す拡張機能ができました。
zend が提供するスーパーグローバル変数は、同じクライアントからの複数のリクエスト間で持続します。変数を保存する方法と場所、および変数を取得する方法を知っている人はいますか?
php - 誰かがWindowsx64でphp5.2.x用のrabbitmq/amqpライブラリをコンパイルしましたか
Windows X64開発マシンのphp(5.2.x)スクリプトからRabbitMQにメッセージを公開しようとしています。
問題は、phpのdll拡張子が見つからなかったことです。私の同僚は実際にそれを構築しようとしていますが(cygwin / mingwを使用してWindowsでPHP拡張機能をコンパイルするにはどうすればよいですか?)、成功しませんでした:(。
php(5.2.x)用の有効な/動作するRabbitMQ dll拡張機能をどこで見つけることができるか誰かが知っていますか?または、誰かがそれを正しくそして迅速に行う経験を持っているなら、それは確かに非常に役に立ちます。
php - Linux 用の PHP 拡張機能: 現実の確認が必要です!
さて、私は最初の機能的な PHP 拡張機能を作成しました。それは機能しましたが、概念実証のみでした。今、私は上司が望んでいることを実際に行う別のものを書いています。
私が知りたいのは、そこにいるすべての PHP ヘッズから、このコードが意味をなすかどうかです。などのことをよく把握してemalloc
いますか、それとも後で好転して手をかみ切ろうとするものはありますか?
以下は、関数の 1 つのコードです。Blowfish で暗号化された文字列の base64 を返します。関数が呼び出されると、暗号化およびエンコードするテキストと暗号化フェーズのキーの 2 つの文字列が渡されます。PHP 独自の base64 関数を使用していないのは、この時点ではそれらへのリンク方法がわからないためです。同じ理由で、PHP 独自の mcrypt 関数を使用していません。代わりに、SSLeayBF_ecb_encrypt
関数にリンクします。
forと forの 2 つのemalloc
呼び出しがあることに気付くでしょう。のみが呼び出し元に返されるため、Buffer が解放されないことが懸念されます。そうですか?に malloc/free を使用する必要がありますか?Encoded
Buffer
Encoded
Buffer
他に明らかなエラーがある場合は、お知らせいただければ幸いです。
php - PHPの7z拡張機能?
私はそれを見つけることができず、 PHP Compression および Archive Extensionsのいずれかが機能するかどうかもわかりません。
圧縮ストリームを使用して 7z ファイルからデータを読み取ることができると思いますか?
アップデート
- 7z フォーラムには、php 拡張機能に対する多くのリクエストがあります。
php - oauth 認証を許可するように php-imap 拡張機能を変更する
私のphpアプリケーションは、oauthが提供するアクセスキーを介してGmailにログインし、受信トレイ内のすべてのメッセージのヘッダーを取得します。php-imap 拡張機能では、ログイン/パスワード ベースの認証のみが許可されます。oauth ベースの認証もサポートするように拡張機能を変更したいと考えています。拡張コード自体の内部でその変更を行い、コンパイルする方法を理解する必要があります。悪い点として、どこを変更すればよいのか、php 拡張機能をコンパイルする方法がよくわかりません。
以前は、Zend が提供する IMAP クラスをこのタスクに使用していました。それらは非常に遅く、gmail は 40 ~ 45 分以上かかると接続を切断する傾向があります。非常に大きな受信トレイの場合、これは頻繁に発生していました。これを php-imap 拡張機能でテストしたところ、zend のものよりもほぼ 10 倍高速に動作しました (C で書かれているためだと思います)。
したがって、現在の php-imap コードで認証が行われている方法と場所、および変更後にコードを再コンパイルする方法を理解する必要があります。
任意のポインタをいただければ幸いです。
c++ - 私のphp拡張機能のセグメンテーション違反
PHP 拡張機能を作成しましたが、セグメンテーション エラーが報告された理由が見つかりませんでした。関連コード:
以下はgdbからのものです
問題は add_assoc_long 関数であることがわかりました。「tkey」は次のように宣言されています。
Segfault は特定の状況でのみ発生し、常に発生するわけではありませんでしたが、tkey は問題ないと思いました。どんな助けでも大歓迎です、どうもありがとう〜
php - Windows で正しい API バージョンを使用して PHP 拡張機能をコンパイルする
計り知れない手間をかけた後、ようやく非常に単純な「Hello World」スタイルの PHP 拡張 dll を Windows で作成しました。ただし、DLL を正常に作成し、それを拡張機能フォルダーに配置し、それについて php.ini に通知しましたが、次のようになります。
PHP 警告: PHP の起動: \x81\xc2\xc0\x03L&\xc0\x03: モジュールを初期化できません\nモジュール API=16777522 でコンパイルされたモジュール\nモジュール API=20090626 でコンパイルされた PHP\nこれらのオプションは一致する必要があります\n行 0
警告: PHP の起動: ÀL&À: モジュールを初期化できません モジュール API=16777522 でコンパイルされたモジュール モジュール API=20090626 でコンパイルされた PHP これらのオプションは、行0の不明で一致する必要があります
私のPHP_API_VERSIONは20090626のようですが、何らかの理由で私のDLLはPHP_API_VERSIONが16777522であると考えています。
以下のチュートリアルは、拡張 dll のコンパイルに役立ちました: http://www.talkphp.com/vbarticles.php?do=article&articleid=49&title=creating-custom-php-extensions
自分で書いたので、問題の php 拡張機能のすべてのソース コードにアクセスできます。
Visual Studio ではなく、Borland C++ Builder v5.5 で dll を正常にコンパイルしています。
重要な場合に備えて、完全なソースを次に示します。
API が一致しなければならない PHP 起動エラーをなくすには、何を変更すればよいですか?
php - ionCubePHPモジュールでエラーが発生する
共有ホストに自分のサイトをアップロードしました。自分のサイトでionCubePHPを使用しています。サイトのインデックスページで次のエラーが発生します。
「index.phpでは、ionCubePHPローダーioncube_loader_lin_5.2.soをサイト管理者がインストールする必要があります。」
サーバーサポートチームに聞いたところ、上記のionCubeがサーバーにインストールされています。
もしそうなら、なぜ上記のエラーを引き起こしますか?
php - CentOS 5.3にphp-mongoをインストールするにはどうすればいいですか?
すでにVPSにmongoDBをインストールしています。それはうまくいきます。
ここで、phpドライバーをインストールしてphpをmongoDBで動作させたいと思います。
Mongoインストールを実行しましたが、必要な情報が見つかりません。このマニュアルには、次の通知のみが含まれています。
CentOSまたはRedhatを使用している場合、Csoke Arpadはこれらのディストリビューション用に»RPMを作成しました(PHP Mongo)。
私はCentOSとディストリビューションのsshコマンドに精通していません(それは何ですか?)。誰かが私がこのphp拡張機能をインストールするのを手伝ってもらえますか?インストールに必要なすべてのsshコマンドを提供してください。
ありがとうございました。