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

Erste Schritte mit dem Schreiben von PHP-Erweiterungen

WBOY
Freigeben: 2016-07-29 09:15:20
Original
907 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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

<code><span>extension</span>=<span>hello_world.so</span></code>
Nach dem Login kopieren

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

<code>php <span>-r</span><span>"echo hello_world();"</span></code>
Nach dem Login kopieren

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

<code><span>Hello</span><span>World</span><span>!</span></code>
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage