阅读:2535回复:0
PHP非字母数字の代码
From:http://insert-script.blogspot.com/2012/12/php-non-alpha-numeric-76-chars.html
如果你对PHP中非字母和数字的字符并不了解,请猛击后面的教程: Tutorial. 上面那个教程看这段代码就知道是如何在$_变量中凑齐想要的字符串: #!php$_="";//we need a blank string to start$_[+$_]++;//access part of the string to convert to an array$_=$_."";//convert the array into a string of "Array"$__=+"";//make zero$__++;//increment to 1$___=$_[+""];//access the 0 index of the string "Array" which is "A"$____=$____=$_[$__];//access the 1 index of the string "Array" which is "r"$_____=$____;// assign "r" to a new variable$_____++;//increment to "s"$______=$___;//new variable for "e"$______++;$______++;$______++;$______++;//increment to "e"$_=$___.$_____.$_____.$______.$____.++$_____;//concat the strings to form "AssErt"$_("p".$____."in".$_____." $__+$__");//call print 1+1这个文章留了个挑战。 我使用的是下面这些字符: $_=+();这7个字符。 剧透下,功能日志会被创建哦,因为这东西不会超过内存的限制。一开始的时候,我弄了个PHP函数,结果特码的超过了99MB,太大了导致无法插入。 来刺狗! 我们首先要获得一个字符串,但是咋整呢? 我们可以先猥琐的创建一个变量: #!php$_=++$_+(++$_);$_=++$_+(++$_); 这样我们就把数字9存进了$_里面。 好吧,但是不能单纯的用数字创建函数名。 To Infinity and beyond(引用自星际大战,意为...思想有多远,我们就能射多远) 其实有一个比较贱的招,就是让系统计数到无限大, 当然这个无限大的INF也会存储进 $里. 这个称作“屎上第一大模块”的(++$) 就可以简单的计数到无穷大. 但问题又特么来了,INF是一个数字不是个字符串啊,所以我们是不能让它增加的。但是,有了 _ for gettext 函数之后妈妈再也不用担心了。这个函数是相当碉堡的,它可以假定我们的INF是个字符串然后回传给我们。所以现在的代码看起来就是:$ _ = _($ _) 时间の递增 在存储了"INF"(注意,现在INF是字符串咯)进入$_后,我们终于可以用++来增加字符串了,好嗨森。 递增 ZZZ 将会创建字符串 AAAA,所以你现在可以创建任何猥琐的功能函数了 (当然除了像chr一类在 INF之下的东东). 要得到字符串的LOG,你需要增加字符串2055次,是不是蛋疼爆了? 那你再爽爽这个, 要创建个 ASSERT to 你需要增加个....不多....2000万次吧。(这也解释了老子的99mbs从哪来的) 总之, 你现在开始往无穷大开始增加字符串, 将其转换成一个有 _ function的函数。然后你就可以增加你要的字符串了. 左轮的6发子弹: $_=+() 我试着用7个字符来达到我的目的,虽然失败了. 所以我想,其实可以把所有的vector放在一个liner里。 所以分号可以退出了。 用+号和括号来实现的猥琐伎俩看起来如下: Count to Infinity: ++$+(++$)+(++$)+(++$)+.... + Cast to string: + ($=($_)) + ... Incrementing the string + ($=++$) + ($=++$) + .. ($_(12)) 因为+号的运算不会坑爹,所以我用6个字符就创建了一个LOG函数,但是600K的东西在一行里,直接就会触发内存耗尽的错误,所以还是无法测试啊亲。但是通过一步步的测试,我肯定这东西肯定是可以用的! 好了,下面就是干货。7个字符组成的PHP代码,因为是log(12)解析的,所以只有46Kb哦! #!php |
|