如何编写一个PHP的C扩展
为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。IO操作如CURL,因为耗时主要在IOWait上,C扩展没有明显优势。 另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C
为什么要用C扩展
C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。IO操作如CURL,因为耗时主要在IOWait上,C扩展没有明显优势。
另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C扩展可操作的范围更广。
第一步
下载PHP的源代码,如php-5.4.16。解压后进入php-5.4.16\ext目录。输入 ./ext_skel –extname=myext,myext就是扩展的名称,执行后生成myext目录。
ext_skel是PHP官方提供的用于生成php扩展骨架代码的工具。
cd myext。可以看到php_myext.h、myext.c、config.m4等几个文件。config.m4是AutoConf工具的配置文件,用来修改各种编译选项。
第二步
修改config.m4,将
dnl PHP_ARG_WITH(myext, for myext support, dnl Make sure that the comment is aligned: dnl [ --with-myext Include myext support])
修改为
PHP_ARG_WITH(myext, for myext support, [ --with-myext Include myext support])
下边还有一个 –enable-myext,是表示编译到php内核中。with是作为动态链接库载入的。
第三步
修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled); 这里就是扩展函数声明部分,可以增加一行 PHP_FUNCTION(myext_helloworld); 表示声明了一个myext_helloworld的扩展函数。
然后修改myext.c,这个是扩展函数的实现部分。
const zend_function_entry myext_functions[] = { PHP_FE(confirm_myext_compiled, NULL) /* For testing, remove later. */ PHP_FE(myext_helloworld, NULL) PHP_FE_END /* Must be the last line in myext_functions[] */ };
这的代码是将函数指针注册到Zend引擎,增加一行PHP_FE(myext_helloworld, NULL)(后面不要带分号)。
第四步
在myext.c末尾加myext_helloworld的执行代码。
PHP_FUNCTION(myext_helloworld) { char *arg = NULL; int arg_len, len; char *strg; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) { return; } php_printf("Hello World!\n"); RETRUN_TRUE; }
zend_parse_parameters是用来接受PHP传入的参数,RETURN_XXX宏是用来返回给PHP数据。
第五步
在myext目录下依次执行phpize、./configure 、make、make install。然后修改php.ini加入extension=myext.so
执行php -r “myext_helloworld(‘test’);”,输出hello world!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Coinbase Security Login Guide:フィッシングサイトや詐欺を避ける方法は? フィッシングと詐欺はますますramp延しており、Coinbaseの公式ログインポータルに安全にアクセスすることが重要です。この記事では、ユーザーがコインベースの最新の公式ログインポータルを安全に見つけて使用して、デジタル資産のセキュリティを保護するための実用的なガイドを提供します。フィッシングサイトを特定する方法と、公式Webサイト、モバイルアプリ、または信頼できるサードパーティプラットフォームを介して安全にログインする方法を取り上げ、強力なパスワードの使用や2要素の検証を可能にするなど、アカウントセキュリティを強化するための提案を提供します。 誤ったログインによる資産の損失を避けるために、この記事を注意深くお読みください!

この記事では、OUYI OKX Exchangeの公式Webサイトにアカウントを登録し、暗号通貨取引を開始する方法について詳しく説明しています。世界をリードする暗号通貨交換として、OUYIは幅広い取引品種、複数の取引方法、強力なセキュリティ保証を提供し、さまざまなフィアットおよび暗号通貨の便利な撤回をサポートします。この記事では、OUYIの公式ウェブサイト登録の入り口の検索方法、詳細な登録手順(電子メール/モバイル登録、情報の充填、検証コード検証などを含む)、および登録後の予防措置(KYC認定、セキュリティ設定など)をカバーし、初心者ユーザーが迅速かつ安全にOUYIアカウント登録を完了し、登録投資の旅を開始するための一般的な質問に答えます。

デジタル通貨取引では、セキュリティが重要です。 フィッシングの普及により、OUYI OKXの公式の入場住所と公式リンクが盗難、資産の損失、個人情報の盗難につながる可能性があります。この記事では、OUYI OKX公式プラットフォームへのアクセスを確保するための包括的なガイドを提供し、ユーザーがフィッシングWebサイトを特定して回避し、デジタル資産のセキュリティを保護するのに役立ちます。 公式Webサイト、公式アプリケーション、公式ソーシャルメディアアカウント、その他の信頼できるチャネルを通じてOUYI OKXの公式ポータルを確認する方法を紹介し、不明なリンクを回避し、強力なパスワードを使用し、2因子検証を可能にするなど、重要なセキュリティのヒントを提供して、トランザクションが安全で信頼できることを保証します。

デジタル通貨取引の人気が高まっているため、安全で信頼できる取引プラットフォームを選択することが重要です。世界をリードするデジタル資産交換として、OKXのセキュリティは多くの注目を集めています。ただし、多くのフィッシングWebサイトはOKXの役人になりすましているため、ユーザーはアカウントのセキュリティと資産の損失のリスクに直面しています。この記事では、フィッシングWebサイトのトラップを避け、デジタル資産のセキュリティを確保するために、実際のOUYI OKXの公式Webサイトとアプリの入り口を特定してアクセスする方法について説明します。 公式ウェブサイトの検証、公式アプリのダウンロード、公式ソーシャルメディアチャネル、公式のカスタマーサービス相談などのさまざまなチャネルを通じて、OKX公式プラットフォームを効果的に特定してアクセスして、トランザクションのセキュリティを確保することができます。 ドメイン名を注意深く確認し、HTTPSプロトコルを確認し、ネットワークセキュリティの認識を向上させてください。

シミュレートされたディスクまたは仮想トランザクションとも呼ばれるシミュレートされたトランザクションは、暗号通貨取引を学び、実践する優れた方法であり、ユーザーは実際の財政的リスクを負わずに仮想資金と取引できるようにします。 シミュレートされた取引により、ゼロリスクで取引プラットフォームの運用を学び、テスト取引戦略をテストし、感情的コントロールを実践し、レバレッジの使用に精通することができます。 Binance、Ouyi、Sesame Open Doorなどの交換はすべてシミュレートされた取引プラットフォームを提供し、TradingViewやMetatraderなどのソフトウェアも同様の機能を提供します。 シミュレートされた取引は取引スキルを効果的に改善する可能性がありますが、それらと実際の取引の違いに注意を払う必要があり、慎重であり、自信過剰ではありません。 この記事では、暗号通貨市場を安定させるために、シミュレートされたトランザクションの利点、使用方法、およびシミュレートされたトランザクションの予防策を詳細に紹介します。

ベテランの暗号通貨デリバティブ取引プラットフォームとして、公式のウェブサイトの入り口の正確性が非常に重要です。 ramp延するフィッシングのウェブサイトにより、偽のウェブサイトへの誤った参入は、盗難や資金の喪失につながる可能性があります。この記事の目的は、ユーザーがBitmexの公式ウェブサイトに安全にアクセスするように導き、信頼できる暗号通貨情報プラットフォーム(Coinmarketcap、Coingeckoなど)、公式ソーシャルメディア、既存の住所の検証、公式サポートチャネルなどのさまざまな方法を提供することを目的としています。

この記事では、Binance、Ouyi、Sesame Openなどの主流の暗号通貨交換の流動性を分析し、ランク付けしています。 暗号通貨取引には高い流動性が重要です。これは、滑りが削減され、トランザクション速度が高く、より理想的なトランザクション価格を意味します。この記事は、取引量、売買価格の広がり、簿記の深さなどの指標から始まります。最後に、この記事は、交換を選択する際に、ユーザーは自分のニーズや交換の流動性やセキュリティなどのさまざまな要因を考慮し、慎重に選択する必要があることを示唆しています。

gate.io sesame open Exchangeアプリダウンロードガイド:この記事では、Candyurrencyをいつでも取引するのに役立つ公式gate.io Exchangeアプリのダウンロード方法について説明します。 Gate.ioアプリには、利便性、優れたユーザーエクスペリエンス、包括的な機能(スポット、契約、レバレッジ、財務管理など)、および強力なセキュリティの利点があり、リアルタイム市場情報を提供します。 安全を確保するには、マルウェアのダウンロードを避けるために、gate.ioの公式Webサイトからアプリをダウンロードしてください。この記事では、公式のウェブサイトのダウンロード手順とiOSおよびAndroidのインストール手順を詳細に紹介し、gate.ioアプリをすばやく開始し、安全で便利な暗号通貨取引の旅を始めるのに役立つよくある質問とセキュリティの提案を提供します。
