• « bcompiler_write_constant
  • bcompiler_write_file »
  • PHP Manual
  • bcompiler İşlevleri
  • Derlenmiş kodun başlangıç konumunu ve imzasını, exe türü bir dosyanın sonuna yazar

bcompiler_write_exe_footer

(PECL bcompiler >= 0.4)

bcompiler_write_exe_footer — Derlenmiş kodun başlangıç konumunu ve imzasını, exe türü bir dosyanın sonuna yazar

Açıklama

bcompiler_write_exe_footer ( resource $dosyatanitici , int $baslangickonum ) : bool

Bir EXE (veya kendiliğinden çalıştırılabilir) dosya 3 bölümden oluşur:

  • arayüz (çalıştırılabilir kod, örneğin derlenmiş bir C kodu) PHP yorumlayıcısını, bcompiler genişletmesini, derlenmiş kodu yükler ve belirli bir işlev (main) veya sınıf yöntemi (main::main) için çağrı başlatır.
  • Derlenmiş kod (sadece o an için sıkıştırılmamış)
  • bcompiler EXE dosya sonu

Arayüz elde etmek için bcompiler examples/embed CVS dizinininde bulunan phpe.c php_embed-based kodunu derleyebilirsiniz.

Değiştirgeler

dosyatanitici

fopen() işlevinden elde edilmiş bir tanıtıcı.

baslangickonum

Derlenmiş kodun başladığı dosya konum bilgisi, ftell() işlevi kullanılarak elde edilebilir.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Örnek 1 - bcompiler_write_exe_footer() örneği

<?php

/* çıktı dosyasını oluştur (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) arayüz yaz (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) derlenmiş kod yaz */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) EXE dosya sonu yaz */
bcompiler_write_exe_footer($fh, $startpos);

/* çıktı dosyasını kapat */
fclose($fh);
?>

Notlar

Uyarı

Bu işlev DENEYSELDİR. Bu işlevin davranışı, ismi ve belgeleri PHP'nin sonraki sürümlerinde hiçbir duyuru yapılmaksızın değiştirilebilir. Bu riski göze alamayacaksanız bu işlevi kullanmayın.

Ayrıca Bakınız

  • bcompiler_write_header() - bcompiler dosya başlığını yazar
  • bcompiler_write_class() - Tanımlanmış bir sınıfı dosyaya yazar
  • bcompiler_write_footer() - Derlenmiş verinin sona erdiğini göstermek için \x00 karakterini yazar