niedziela, 24 marca 2013

PHP - jak przeparsować dump pamięci procesu Windows i zostawić tylko znaki 'human readable' ;)

<?php

set_time_limit(1000);

$handle2 = fopen("iibig.txt", "w+");

$s = '';

$file = new SplFileObject('ibig.txt');
while (false !== ($char = $file->fgetc())) {
   
    if ( ord($char)>31 && ord($char) < 127) {
        fwrite($handle2, $char);
        $s = '';
    } else {
        if ($s=='') {
            fwrite($handle2, " ");
            $s = ' ';
        }

    }

}

fclose($handle2);
?>



A poniżej jak z wyniku wyciągnąć URL'e:

<?php

$h = file_get_contents('aaiibig.txt');

echo strlen($h);

preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $h, $match);

$all_urls = $match[0];

for ($i=0; $i
    echo $all_urls[$i]."\r\n";

}

?>

Trochę o multikodach - pozycjonowanie

http://www.blog.gdaq.pl/2012/03/najwieksze-listy-seokatalogow-gwarancja-skutecznosci-w-pozycjonowaniu/

niedziela, 17 marca 2013

UTF-8 BOM - jak sie dziadostwa pozbyć, rekursywnie w PHP

 Znalezione gdzieś na sieci:


<?php

    function scanDirectories($rootDir, $allData=array()) {
        $invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd");
        $dirContent = scandir($rootDir);
        foreach($dirContent as $key => $content) {
            $path = $rootDir.'/'.$content;
            if(!in_array($content, $invisibleFileNames)) {
                if(is_file($path) && is_readable($path)) {
                    $allData[] = $path;
                }elseif(is_dir($path) && is_readable($path)) {
                    $allData = scanDirectories($path, $allData);
                }
            }
        }
        return $allData;
    }


    function remove_utf8_bom($text) {
        $bom = pack('H*','EFBBBF');
        $text = preg_replace("/^$bom/", '', $text);
        return $text;
    }


    $dirlist = scanDirectories('.');
    $c = count ($dirlist);

    for ($i=0; $i<$c; $i++) {
        echo $dirlist[$i].'<br/>';
        $res = remove_utf8_bom(file_get_contents($dirlist[$i]));
        file_put_contents($dirlist[$i], $res);
    }

?>

poniedziałek, 11 marca 2013