联系信息

如果你有评论、问题的修复、功能的增强,或者想要帮助开发这头野兽,你可以给我投封邮件 » alan_k@php.net。 非常欢迎任何您的帮助!

bcompiler_load_exe

从一个 bcompiler exe 文件中读取并创建类

说明

bool bcompiler_load_exe ( string $filename )

从一个 bcompiler exe 文件中读取数据并根据字节码创建类。

参数

filename
exe文件的路径,是一个字符串。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_load_exe 例子

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_load

bcompiler_load

从一个 bz 压缩过的文件中读取并创建类

说明

bool bcompiler_load ( string $filename )

从一个 bz 压缩过的文件中读取数据,并根据字节码创建类。

参数

filename
bz压缩过的文件路径,是一个字符串。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_load 例子

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

Note:

请使用 include 或 require 语句解析字节码,这是种比使用本函数更轻便的方式。

请注意该函数不会执行字节码文件中包含的脚本主体代码。

参见

  • bcompiler_load_exe

bcompiler_parse_class

读取一个类的字节码并回调一个用户的函数

说明

bool bcompiler_parse_class ( string $class , string $callback )

读取一个类的字节码并回调一个用户的函数。

参数

class
字符串,类名。

callback

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_parse_class 例子

<?php

function readByteCodes($data) {
    print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

Note:

自 bcompiler 0.5 起,该函数已从 bcompiler 中删除并不再有效。

bcompiler_read

从一个文件句柄中读取并创建类

说明

bool bcompiler_read ( resource $filehandle )

从一个打开的文件句柄中读取数据,并从字节码中创建类。

参数

filehandle
fopen 返回的文件句柄。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_read 例子

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

Note:

请使用 include 或 require 语句解析字节码,这是种比使用本函数更轻便的方式。

请注意该函数不会执行字节码文件中包含的脚本主体代码。

bcompiler_write_class

写入定义过的类的字节码

说明

bool bcompiler_write_class ( resource $filehandle , string $className [, string $extends ] )

从 PHP 读取已存在的类的字节码,并把它们写入打开的文件句柄中。

参数

filehandle
fopen 返回的文件句柄。

className
字符串的类名。

extends

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_class 例子

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// 你必须先于 DB_mysql 写入 DB_common,因为DB_mysql extends DB_common。
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

Note:

该函数不会执行依赖检查,所以确保你写入类的顺序,防止在加载的时候导致 undefined class 错误。

参见

  • bcompiler_write_header
  • bcompiler_write_footer

bcompiler_write_constant

写入定义过的常量的字节码

说明

bool bcompiler_write_constant ( resource $filehandle , string $constantName )

从 PHP 读取存在的常量的字节码并把它们写入打开的文件句柄中。

参数

filehandle
一个由 fopen 打开并返回的文件句柄。

constantName
定义过的常量名,是一个字符串。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_constant 例子

<?php
define("MODULE_MAX", 30);

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_header
  • bcompiler_write_footer

bcompiler_write_exe_footer

写入开始位置以及 exe 类型文件的结尾信号

说明

bool bcompiler_write_exe_footer ( resource $filehandle , int $startpos )

一个 EXE(或可自执行)文件由 3 部分组成:

  • The stub (可执行代码,例如一个编译过的 c 程序) 加载了 PHP 解释器、bcompiler 扩展、储存的字节码并初始化调用指定函数(例如 main) 或类的方法(例如 main::main)。
  • 字节码(仅在那时未压缩)
  • bcompiler 的 EXE 尾部

为了得到适合的 stub 你可以编译位于 bcompiler CVS examples/embed 目录里 基于 php_embed 的 stub phpe.c

参数

filehandle
fopen返回的一个文件句柄。

startpos
字节码在文件中开始的位置,可以通过 ftell 获取。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_exe_footer 例子

<?php

/* 创建输出的文件(example.exe) */
$fh = fopen("example.exe", "w");

/* 1) 写入一个 stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) 写入字节码 */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) 写入 EXE 尾部 */
bcompiler_write_exe_footer($fh, $startpos);

/* 关闭输出的文件 */
fclose($fh);
?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_header
  • bcompiler_write_class
  • bcompiler_write_footer

bcompiler_write_file

写入 PHP 源码文件的字节码

说明

bool bcompiler_write_file ( resource $filehandle , string $filename )

这个函数将指定的源码编译成字节码,并将它们写入打开的文件句柄中。

参数

filehandle
fopen 返回的一个文件句柄。

filename
源码文件路径,字符串的形式。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_file 例子

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* 以下是相等的:
include "example.php";
   和
include "example.phb";
*/
?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_header
  • bcompiler_write_footer

bcompiler_write_footer

写入单个字符 \x00 用于标识编译数据的结尾

说明

bool bcompiler_write_footer ( resource $filehandle )

写入单个字符 \x00 用于标识编译数据的结尾。

参数

filehandle
fopen 打开的一个文件句柄。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_footer 例子

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_class($fh,"DB_common");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_header

bcompiler_write_function

以字节码写入定义过的函数

说明

bool bcompiler_write_function ( resource $filehandle , string $functionName )

从 PHP 读取现存函数的字节码,并把它们写入打开的文件句柄中。顺序并不重要。 (例如假设函数 b 用到了函数 a,你以下面的例子那样编译它们,将会工作得很好)

参数

filehandle
fopen 返回的一个文件句柄。

functionName
函数名,字符串的形式。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_function 例子

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_header
  • bcompiler_write_footer

bcompiler_write_functions_from_file

以字节码写入一个文件中定义过的所以函数

说明

bool bcompiler_write_functions_from_file ( resource $filehandle , string $fileName )

从给定的文件中搜索定义过的所有函数,并把它们对应的字节码写入打开的文件句柄中。

参数

filehandle
fopen 打开并返回的一个文件句柄。

fileName
要编译的文件。你总是必须 inculde 或 require 这个想要编译的文件。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_functions_from_file 例子

<?php
require('module.php');

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_header
  • bcompiler_write_footer

bcompiler_write_header

写入 bcompiler 头

说明

bool bcompiler_write_header ( resource $filehandle [, string $write_ver ] )

写入一个 bcompiler 文件的头部。

参数

filehandle
fopen 返回的一个文件句柄。

write_ver
能够用以前使用的格式写入字节码,这样就可以在较旧的 bcompiler 版本中使用。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

示例 #1 bcompiler_write_header 例子

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参见

  • bcompiler_write_footer

bcompiler_write_included_filename

写入一个包含的文件的字节码

说明

bool bcompiler_write_included_filename ( resource $filehandle , string $filename )

Warning

本函数还未编写文档,仅有参数列表。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

注释

Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

目录