File: programlisting.php

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (29 lines) | stat: -rw-r--r-- 1,350 bytes parent folder | download | duplicates (4)
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
<?php
$dir = new DirectoryIterator('../module_specs/');

function InsertSpace($matches)
{
    return $matches[1].$matches[2].$matches[3].str_pad(' ',strlen($matches[1])).$matches[4];
}

foreach ($dir as $file)
{
    if ($file->isFile()) {
        $text = file_get_contents($file->getPathName());
        // Put \n after CDATA if none
        $text = preg_replace('/(\<\!\[CDATA\[)([^\n])/', "$1\n$2", $text);
        // Omit space (not \n) before ]]>
        $text = preg_replace('/([^\n])(\s*)(\]\]\>\<\/programlisting\>)/', "$1\n$3", $text);
        // Reset all space between ]]> and </programlisting>
        $text = preg_replace('/(\]\]\>)(\n|\s)*(\<\/programlisting\>)/', "$1$3", $text);
        // Omit last ? > of the programlisting
        $text = preg_replace('/(\?\>)(\n|\s)*(\]\]\>)/', "$2$3", $text);
        // Put \n before ]]> if none
        $text = preg_replace('/([^\n])(\]\]\>)(\<\/programlisting\>)/', "$1\n$2$3", $text);
        // Put \n between ]]> and </programlisting>
        $text = preg_replace('/(\]\]\>)(\<\/programlisting\>)/', "$1\n$2", $text);
        // Put same indent before </programlisting> as before <programlisting>
        $text = preg_replace_callback('/([^\n]*)(<programlisting role="php"><)(.*?)(<\/programlisting>)/s', "InsertSpace", $text);
        file_put_contents($file->getPathName(),$text);
    }
}