这个“非常快速和肮脏 (1)”的 PHP 代码通过查找一些魔术字符串从该文件中提取 JPG、PNG、GIF 和 gz 压缩的文本文件......文本被解码并显示图像......
(1) Quick-and-dirty 是一个术语,用于指代任何可以轻松实现变通方法或“kludge”的方法。它在程序员中很流行,他们用它来描述一个粗略的解决方案或编程实现,它不完美、不优雅或在其他方面不充分,但它解决或掩盖了手头的问题,并且通常比适当的解决方案。(维基百科)
<?php
$PNG_SIG = "\x89PNG\x0D\x0A\x1A\x0A";
$PNG_EOF = "IEND\xAE\x42\x60\x82";
$GIF_SIG = "GIF89a";
$aba = file_get_contents('en-us.aba');
$pngs = explode($PNG_SIG, $aba);
foreach ($pngs as $i=>$png) {
if ($i>0) {
$extra = explode($PNG_EOF, $png);
$img = base64_encode($PNG_SIG.$extra[0].$PNG_EOF);
echo '<img src="data:image/png;base64,'."\n".$img.'" />';
echo "\n";
if ($extra[1]!='') {
if (substr($extra[1], 0, 6)==$GIF_SIG) {
$gifs = $extra[1];
$gifs = explode($GIF_SIG, $gifs);
foreach ($gifs as $j=>$gif) {
if ($j>0) {
$img = base64_encode($GIF_SIG.$gif);
echo '<img src="data:image/gif;base64,'."\n".$img.'" />';
echo "\n";
}
}
}
else {
$gz = @gzuncompress($extra[1]);
if ($gz!==false) {
echo "<pre>\n";
echo htmlspecialchars($gz);
echo "</pre>\n";
}
else {
$jpg = base64_encode($extra[1]);
echo '<img src="data:image/jpeg;base64,'."\n".$jpg.'" />';
echo "\n";
}
}
}
}
}
?>
结果:
替代文字 http://img132.imageshack.us/img132/280/83168934.png
替代文字 http://img62.imageshack.us/img62/6541/32497869.png