Почему, когда я запускаю скрипт .php в Ubunutu, он просто повторяет сам скрипт? - PullRequest
13 голосов
/ 28 сентября 2011

Мне нужно декодировать двоичные данные содержимого одного из моих файлов кэша Chrome, которые я называю cache.log.Я пытаюсь декодировать его, используя скрипт php, который я нашел здесь

http://www.frozax.com/blog/2011/05/recover-file-google-chrome-cache-gzipped/

Я уже установил php с помощью следующей команды

sudo apt-get install php5 libapache2-mod-php5
sudo apt-get install php5-cgi

Когда я пытаюсь запустить скрипт index1.php, я получаю в терминале следующее:

s3z@s3z-laptop:~/Desktop$ php index1.php 
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
// cache.log is a copy of chrome cache page with only the file content section
$cacheString = file_get_contents("cache.log");
$matches = array();
preg_match_all('/\s[0-9a-f]{2}\s/', $cacheString, $matches);
$f = fopen("t.bin","wb");
foreach ($matches[0] as $match)
{
  fwrite($f,chr(hexdec($match)));
}
fclose($f);

ob_start();
readgzfile("t.bin");
$decoded_data=ob_get_clean();
echo $decoded_data;

. Как видите, все, что он делает, - это повторение скрипта.

Как на самом деле запустить скрипт?

1 Ответ

17 голосов
/ 28 сентября 2011

Не похоже, что код обернут в:

<?php 

?> 

Если у него его нет, он просто выдаст эхо вместо выполнения.Причина этого в том, что PHP позволяет смешивать серверные сценарии и HTML в одном файле.

<html>
    <head><title></title></head>
    <body>
    <?php 
        //Inside the php block so it gets executed and prints 'Hello World'
        echo "Hello, World!"; 
    ?>
    <!--Outside the php block so it just gets echoed and prints 'echo "Hello, World!";' -->
    echo "Hello, World!"; 
    </body>
</html>
...