可以扩展PHPc 字符串调用函数中的函数调用吗

您的位置:
PHP字符串内调用函数的方式
发布者: moke |
"{$o0_0o{phpinfo()}}"
"{$我勒个去[phpinfo()]}"
"${~-~phpinfo()}"
"${0e0+phpinfo()}"
What fuck?
<<<我是好人
$&_&${$&_&{pHPINfo(@~-$$总之,我是好人)}}
我简单整理了下规则:
" ${phpinfo()} "
" ${@phpinfo()} "
" ${${phpinfo()} }"
" ${{0x00-0x20}phpinfo()} "
" ${{逻辑||运算}phpinfo()} "
" {${合法变量名}[phpinfo()]} "
" {${合法变量名}{phpinfo()}} "
魔客吧温馨提示:如果您正在寻找网站后台模板,那么到魔客吧的
频道看看吧,说不定有你喜欢的哦!
本文地址:
文章标题:
最新分享资源
0102030405060708PHP7扩展开发之字符串处理
本文由淘宝网苍龙(信海龙,21CTO会员)为21CTO社区投稿,本站首发。
PHP的字符串处理函数族很强大,它们的抽象都是由Zend使用C语言来开发的。本文中心思想为开发PHP扩展的字符串篇,欢迎各位关注&分享。
这次,我们来看看字符串在PHP扩展里面如何处理。
示例代码如下:
12345678910111213141516
&?phpfunctionstr_concat($prefix, $string) {$len= strlen($prefix);$substr= substr($string, 0, $len);if($substr!= $prefix) {return$prefix." ".$string;} else{return$string;} }echostr_concat("hello", "word");echo"n";echostr_concat("hello", "hello bo56.com");echo"n";?&
在上面的str_concat方法实现了如下功能:
1、当字符串不包含指定前缀字符串时,把前缀字符串和被检测字符合并返回。
2、当字符串包含指定前缀字符串时,原样返回。
我们将使用PHP扩展的方式实现str_concat功能。
这个扩展,我们将在say扩展上增加 str_concat方法。say扩展相关代码大家请看这篇博文。PHP7扩展开发之hello word文中已经详细介绍了如何创建一个扩展和提供了源码下载。
实现str_concat方法
str_concat方法的PHP扩展源码:
12345678910111213141516
PHP_FUNCTION(str_concat){zend_string *prefix, *subject, *zval *if(zend_parse_parameters(ZEND_NUM_ARGS(), "Sz", &prefix, &string) == FAILURE) {return; } subject = zval_get_string(string);if(zend_binary_strncmp(ZSTR_VAL(prefix), ZSTR_LEN(prefix), ZSTR_VAL(subject), ZSTR_LEN(subject), ZSTR_LEN(prefix)) == 0) {RETURN_STR(subject); } result = strpprintf(0, "%s %s", ZSTR_VAL(prefix), ZSTR_VAL(subject));RETURN_STR(result);}
zend_string是PHP7新增的结构。结构如下:
struct_zend_string {zend_refcounted_ /*gc信息*/zend_ /* hash value */size_t /*字符串长度*/charval[1]; /*字符串起始地址*/};
在Zend/zend_string.h提供了一些zend_string处理的一些方法。
ZSTR_开头的宏方法是zend_string结构专属的方法。主要有如下几个:
#define ZSTR_VAL(zstr) (zstr)-&val#define ZSTR_LEN(zstr) (zstr)-&len#define ZSTR_H(zstr) (zstr)-&h#define ZSTR_HASH(zstr) zend_string_hash_val(zstr)
ZSTR_VALZSTR_LENZSTR_H宏方法分别对应zend_string结构的成员。ZSTR_HASH是获取字符串的hash值,如果不存在,就调用hash函数生成一个。
代码中故意把第二个参数转换成zval。主要是为了展现zend为我们提供了一些列的操作方法。如,zval_get_string, zend_binary_strncmp。
这些方法在Zend/zend_operators.h文件中。
更多宏方法请大家查看 Zend/zend_API.h中的相关代码。我们下篇见。
作者:苍龙
来源:信海龙博客(bo56.com)
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点php 中, 字符串怎么参加到代码中执行_百度知道
php 中, 字符串怎么参加到代码中执行
&quot:数据库中存.例;phpinfo(): &phpinfo();&PHP中直接将&quot我想在数据库中保存PHP中的语句,将数据库中的语句信息直接放在PHP中, 就像include似的,在执行到本页时
我有更好的答案
如果字符串本身就是php代码的话是可以用php本身的一个函数去执行这段代码的。这里用到的函数是eval()函数。这个函数内的参数必须是完整的php代码,包括结尾的分号都不能少。
采纳率:73%
来自团队:
&quot,前提是这个字符串符合php的格式比如你从数据中读取的字符串&phpinfo();&$str=&phpinfo()你可以使用php的eval函数 这个函数能将字符串作为php的代码来处理
本回答被提问者采纳
为您推荐:
其他类似问题
您可能关注的内容
字符串的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)6被浏览722分享邀请回答0添加评论分享收藏感谢收起RETURN_STRINGL(strg,len,1);
0添加评论分享收藏感谢收起写回答1 个回答被折叠()

我要回帖

更多关于 python字符串调用函数 的文章

 

随机推荐