日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

关于php无字母代码的研究

發(fā)布時間:2025/5/22 php 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于php无字母代码的研究 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

什么是無字母代碼,也就是代碼中不出現(xiàn)任何的數(shù)字或者字母.而是通過用一些特殊的方法構(gòu)造出字母.這個在javascript里面經(jīng)常看到.PHP 也可以通過一些hack的方式來實現(xiàn)

首先php 里有一個非常特殊的字符就是 "_" ?這個字符在不經(jīng)過引號的引起來的情況就可以直接輸出

例如執(zhí)行

<?php echo _; ?>

你會得到 ?_ 這個字符的輸出。而其他的特殊字符則不可以.

好了開始轉(zhuǎn)變思路.眾所周知php是弱類型語言,字符串是可以直接和數(shù)字進行運算的. 那么 _ 這個字符應(yīng)該也同樣可以

嘗試如下代碼:

<?php echo +_; ?>

會看到輸出 的是數(shù)字 0.很神奇對吧,其實上面的代碼類似 ?echo 0+_; 字符串 _ 被轉(zhuǎn)成整型來進行計算了.

好了現(xiàn)在數(shù)字0已經(jīng)有了. 那么1 怎么獲得呢..

那么就要用到取反的符號了 ~ ,嘗試執(zhí)行如下代碼

<?php echo -~+_; ?>

可以看到輸出是 1 ,原理也比較簡單 0 按位取反得到 -1 (注意是二進制的按位取反), - 則是數(shù)學(xué)意義上的取反,最終得到1

好了現(xiàn)在 1 和 0 我們都有了..可以說這個世界就擁有了一半了.后面的數(shù)字就不用再舉例了.

即使最簡單的 (-~+_)+(-~+_) ...的方式也足夠得到其余所有的數(shù)字了.

好了下面要解決比較困難的問題,如何獲得abcd 這樣的字母呢

暫時我只能找到用數(shù)組變量轉(zhuǎn)成Array的字符串,然后用數(shù)組字符串的形式取出其中的字母

我們先來得到一個數(shù)組

$_[]++; 注:php 5.4以前是不支持 $_=[]; 這樣的數(shù)組定義語法的.所以只能變通一下用 $_[]++ 來得到一個數(shù)組。

然后看下面的代碼

<?php $_[]++; echo $_._; ?>

你會看到輸出 Array_ ?, 哈哈 ,終于得到我們要的字符串了。

下面思路就比較清晰了,只要取出 這個字符串?dāng)?shù)組里的字符即可。看代碼把

<?php $_[]++; $_[]=$_._; echo $_[-~+_][+_]; ?>

這樣就得到 第一個字母 A 了.?

其他的字母 想要得到就簡單多了

<?php $_[]++; $_[]=$_._; $_=$_[-~+_][+_]; echo ++$_; ?>

這樣就可以得到字母B 了.

好了我們來 嘗試執(zhí)行如下代碼:

<?php $_[]++; $_[]=$_._; $_=$_[-~+_][+_]; ++$_;++$_;++$_;++$_;$__=++$_;++$_;$___=++$_;++$_;++$_;++$_;++$_;++$_;$____=++$_;$______=$_____=++$_; $_=++$_____.$___.$_____.++$___.$____.$__.$______; $_(); ?>

代碼有些丑陋, 但正常執(zhí)行應(yīng)該是沒有問題的.那么你看出上面的代碼執(zhí)行的是什么內(nèi)容了嗎?


實際上上述代碼 等等同于 phpinfo() 這一行代碼.

有些蛋疼的研究,不過很有趣.?

轉(zhuǎn)載于:https://my.oschina.net/jiuxiaoyao/blog/151367

總結(jié)

以上是生活随笔為你收集整理的关于php无字母代码的研究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。