Heim >Backend-Entwicklung >PHP-Tutorial >Erste Schritte mit dem Schreiben von PHP-Erweiterungen

Erste Schritte mit dem Schreiben von PHP-Erweiterungen

WBOY
WBOYOriginal
2016-07-29 09:15:20909Durchsuche

In diesem Artikel wird erklärt, wie PHP-Erweiterungen geschrieben werden, indem eine einfache PHP-Erweiterung hello_world geschrieben wird. Diese Erweiterung ist nicht praktikabel und dient lediglich dem Erlernen des Schreibens von Erweiterungen. Wenn Sie wirklich selbst eine praktische PHP-Erweiterung schreiben möchten, müssen Sie mit der ZEND-API vertraut sein und hohe Anforderungen an die C-Sprache haben.

Okay, kommen wir zum Punkt.

1. Geben Sie das ext-Verzeichnis des PHP-Quellcodes ein und führen Sie dann Folgendes aus:

<code><span>./ext_skel --extname</span>=<span>hello_world</span></code>

2 Geben Sie das Verzeichnis hello_world ein, bearbeiten Sie config.m4 und entfernen Sie die Zeilen 16, 18 und 53 davor dnl:

<code><span>PHP_ARG_ENABLE</span>(<span>hello_world</span>, <span>whether</span><span>to</span><span>enable</span><span>hello_world</span><span>support</span>,
<span>[  --enable-hello_world           Enable hello_world support]</span>)
<span>AC_DEFINE</span>(<span>HAVE_HELLO_WORLDLIB</span>,1,<span>[ ]</span>)
</code>

3. Ändern Sie die Datei php_hello_world.h und ändern Sie das Original

<code><span>#<span>define</span> PHP_HELLO_WORLD_H</span></code>

in den folgenden Inhalt:

<code><span>#<span>define</span> PHP_HELLO_WORLD_H 1</span><span>#<span>define</span> PHP_HELLO_WORLD_VERSION "1.0"</span><span>#<span>define</span> PHP_HELLO_WORLD_EXTNAME "hello_world"</span>
PHP_FUNCTION(hello_world);<span>//这句最关键</span></code>

4. Ändern Sie die hello_world.c-Datei:
Ändern Sie den folgenden Inhalt:

<code><span>const</span> zend_function_entry hello_world_functions[] = {
        PHP_FE(confirm_hello_world_compiled,    <span>NULL</span>)           <span>/* For testing, remove later. */</span>
        PHP_FE_END      <span>/* Must be the last line in hello_world_functions[] */</span>
};</code>

in:

<code><span>const</span> zend_function_entry hello_world_functions[] = {
        PHP_FE(confirm_hello_world_compiled,    <span>NULL</span>)           <span>/* For testing, remove later. */</span>        PHP_FE(hello_world,    <span>NULL</span>)
        PHP_FE_END      <span>/* Must be the last line in hello_world_functions[] */</span>
};
</code>

und fügen Sie dann am Ende den folgenden Inhalt hinzu:

<code><span>//扩展函数正文部分</span><span>PHP_FUNCTION(hello_world)</span>{
        <span>RETURN_STRING(<span>"Hello World!"</span>,<span>1</span>)</span>;
}</code>

5. Gehen Sie zur ext /hello_world Verzeichnis und führen Sie den folgenden Befehl aus

<code>/usr/<span>local</span>/php/bin/phpize
<span>.</span>/configure <span>--</span><span>with</span><span>-php</span><span>-config</span><span>=</span>/usr/<span>local</span>/php/bin/php<span>-config</span>
make <span>&&</span> make install
</code>

6. Bearbeiten Sie php.ini und fügen Sie den folgenden Inhalt hinzu:

<code><span>extension</span>=<span>hello_world.so</span></code>

Test:
Führen Sie den folgenden Inhalt in der Befehlszeile aus:

<code>php <span>-r</span><span>"echo hello_world();"</span></code>

Zu diesem Zeitpunkt sehen Sie den folgenden Inhalt in der Standardausgabe:

<code><span>Hello</span><span>World</span><span>!</span></code>

An diesem Punkt befindet sich die Erweiterung hello_world geschrieben!

Urheberrechtserklärung: Bei diesem Artikel handelt es sich um einen Originalartikel des Bloggers. Bitte geben Sie beim Nachdruck die Quelle an.

Das Obige führt in die Einführung in das Schreiben von PHP-Erweiterungen ein, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn