1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#!/usr/bin/php -q
<?php
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Gabor Hojtsy <goba@php.net> |
+----------------------------------------------------------------------+
$Id: fixphpweb.php 293138 2010-01-05 10:21:11Z rquadling $
*/
set_time_limit(0);
ob_implicit_flush();
if ($argc < 2 || $argc > 3) { ?>
Deletes the HTML !DOCTYPE lines from 'phpweb_xsl' generated files
Usage:
<?php echo $argv[0];?> <dir>
<dir> is the folder, where the phpweb_xsl output
files are located. The files will be rewritten to
get the !DOCTYPE && ?xml removed.
<?php
exit;
}
echo "Starting phpweb_xsl fix\n";
// Strip of any ending slash
$startdir = preg_replace('!/+$!', '', $argv[1]);
// Check folder
if (!is_dir($startdir)) {
die("ERROR: The first parameter is not a directory\n");
}
// Try to open folder
$dh = opendir($startdir);
if (!$dh) { die("ERROR: Unable to open directory\n"); }
// For all the files
while (($filename = readdir($dh)) !== FALSE) {
$fullname = "$startdir/$filename";
// If this is a php file
if (preg_match("!.php$!", $fullname) && is_file($fullname)) {
$contents = file($fullname);
// If !DOCTYPE is not found, skip file rewrite
if (strpos($contents[0], "<!DOCTYPE") === FALSE && strpos($contents[0], "<?xml ") === FALSE) { continue; }
// Otherwise, rewrite the contents of the
// file, skiping the first line
$fp = fopen($fullname, "w");
if (!$fp) { die("ERROR: unable to open $fullname for writing\n"); }
fwrite($fp, join("", array_slice($contents, 1)));
fclose($fp);
}
}
closedir($dh);
echo "SUCCESS: !DOCTYPE stripout finished\n";
|