", $_GET['myf']); if (sizeof($huhis) >= 3) $undefined = str_replace("Differences Table"; $deadlinks = "n"; $myfe = "differences=Report%20list%20of%20file%20differences%20of%20file%20list&myf="; if ($_GET['differences'] == "") { $mode = "Report list of file differences of file list"; } else { $mode = urldecode($_GET['differences']); } $outrepis = diffask(); } else if (isset($_POST['differences'])) { $askwhentwo = " "; //if (bigj == 1) { alert(882); document.getElementById(\"f1name\").value = ininf; } else if (bigj == 2) { alert(887); document.getElementById(\"f2name\").value = ininf; document.getElementById(\"ddiff\").style.display=\"block\"; document.getElementById(\"btwo\").click(); } "; $urlsuffix = "?deadlinks=" . urlencode(urldecode($_POST['differences'])); $omyh1stuff = " mh(); "; //" omyh1=document.getElementById('myh1'); if (omyh1.innerHTML.indexOf(' Please wait ') == -1) { omyh1.innerHTML = omyh1.innerHTML + ' ... Please wait while we analyze your URLs ... '; } "; $title = "File Differences Table"; $deadlinks = "n"; $myfe = "differences=Report%20list%20of%20file%20differences%20of%20file%20list&myf="; if ($_POST['differences'] == "") { $mode = "Report list of file differences of file list"; } else { $mode = urldecode($_POST['differences']); } $outrepis = diffask(); } function diffask() { $ourrepis = ""; if (isset($_POST['f1data'])) { exec(' mkdir /tmp/diffs'); file_put_contents("/tmp/diffs/" . basename($_POST['f1name']), $_POST['f1data']); $ffile = "/tmp/diffs/" . basename($_POST['f1name']); if ($_POST['f2data'] == "") { $ourrepis = "

Filename " . $_POST['f1name'] . " on its lonesome but you'll be pleased to know it does not have a split personality.

"; } else { $ssdir = "diffs/"; file_put_contents("/tmp/" . $ssdir . basename($_POST['f2name']), $_POST['f2data']); exec(' diff "' . $ffile . '" "/tmp/' . $ssdir . basename($_POST['f2name']) . '" > /tmp/diffs/xd.xd '); //$ourrepis = "Filename " . $_POST['f1name'] . " differs from filename " . $_POST['f2name'] . " as below:

"; $ourrepis = "Filename " . $_POST['f1name'] . " differs from filename " . $_POST['f2name'] . " as below:

"; exec(' rm -f /tmp/diffs/xd.xd'); exec(' rm -f "' . $ffile . '"'); exec(' rm -f "/tmp/' . $ssdir . basename($dir . $fsp . $ext) . '"'); } } return $ourrepis; } function url_exists($url) { // Thanks to http://stackoverflow.com/questions/2280394/how-can-i-check-if-a-url-exists-via-php global $fnameis; global $lnameis; global $pnameis; global $flh; $exists = false; $url = urldecode($url); if (strpos($url, "https:") !== false || strpos($url, "HTTPS:") !== false || strpos($url, "http:") !== false || strpos($url, "HTTP:") !== false) { if (strpos(substr(trim($url), 8), "/") === false) $url = trim($url) . "/"; $wordsare = explode("/", $url); if ($wordsare[sizeof($wordsare) - 1] != "") { if (strpos($wordsare[sizeof($wordsare) - 1], ".") === false && strpos($wordsare[sizeof($wordsare) - 1], "?") === false && strpos($wordsare[sizeof($wordsare) - 1], "&") === false) { $url = trim($url) . "/"; } } //if (!$fp = curl_init($url)) return false; //curl_close($fp); //return true; $curl = curl_init(); // thanks to http://stackoverflow.com/questions/7852005/how-to-check-if-a-url-exists-with-php-and-make-it-time-out-after-a-number-of-sec curl_setopt($curl, CURLOPT_URL, trim($url)); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($curl); curl_close($curl); preg_match("/HTTP\/1\.[1|0]\s(\d{3})/",$data,$matches); return ($matches[1] == 200); } else if (strpos($url, "http:") !== false || strpos($url, "HTTP:") !== false) { $file = $url; $file_headers = @get_headers($file); $flh = $file_headers[0]; if (strpos($file_headers[0], " 404 ") !== false) { // == 'HTTP/1.1 404 Not Found') { $exists = false; } else { $exists = true; } } else { $exists = file_exists($url); } return $exists; } function echop($ine) { global $fnameis; global $lnameis; global $pnameis; echo "

" . $ine . "

"; } function prelook($xinfl) { global $fnameis; global $lnameis; global $pnameis; global $undefined; $outinfl = $xinfl; $fnameis = ""; if (strpos($xinfl, "http(") !== false || strpos($xinfl, "HTTP(") !== false) { $zxinfl = explode(")", substr($xinfl, 5)); $hbit = "(" . $zxinfl[0] . ")"; $outinfl = str_replace($hbit, "", $outinfl); $fnameis = str_replace(" undefined ", $undefined, str_replace("(", " in ", str_replace(")", "", str_replace("|", " on line ", str_replace("@", " at column ", $hbit))))); } return $outinfl; } function pluck($sdelim, $pstr, $bstr, $edelim, $ourln, $ourcp) { global $urllist, $statuslist, $linelist, $collist, $fnameis; if ($sdelim == "=") { if (strpos($bstr, "'") !== false && strpos($bstr, '"') !== false) { if (strpos($bstr, "'") < strpos($bstr, '"')) { $sdelim = "'"; } else { $sdelim = '"'; } } } if ($sdelim == "") { $preturl = explode($edelim, $bstr); $pturl = explode("<", $preturl[0]); $turl = explode(chr(92), $pturl[0]); } else { $preturl = explode($sdelim, $bstr); $pturl = explode("<", $preturl[0]); $turl = explode(chr(92), $pturl[0]); } $endl = ""; if (strpos(substr(trim($pstr . $turl[0]), 8), "/") === false) $turl[0] = trim($turl[0]) . "/"; $urllist .= $pstr . $turl[0] . "
"; if (url_exists($pstr . $turl[0])) { $statuslist .= "exists
"; } else { $statuslist .= "does not exist
"; } $linelist .= $ourln . "
"; $collist .= $ourcp . "
"; return $pstr . "(" . $fnameis . "|" . $ourln . "@" . $ourcp . ")" . $turl[0] . $edelim; } function makeintolist($inst) { // via web server filelist via glob global $urllist, $statuslist, $linelist, $collist, $fnameis, $urlsuffix; $urlbit = ""; $outst = $inst; $interimst = $inst; $interimst = explode("\n", $inst); if (sizeof($interimst) > 0) $outst = ""; for ($ik=0; $ik exists" . $fnameis . $lnameis . $pnameis . "."; } else { $outfl .= "" . $urls[$ij] . $endl . " does not exist" . $fnameis . $lnameis . $pnameis . "."; } $flh = ""; } } $outfl .= ""; } return $outfl; } function on_to($on, $to) { global $fnameis; global $lnameis; global $pnameis; if (url_exists(urldecode($on))) { if ($to == "") { echop(urldecode($on) . " exists" . $fnameis . $lnameis . $pnameis . ".\n"); } else { file_put_contents($to, file_get_contents($to) . urldecode($on) . " exists" . $fnameis . $lnameis . $pnameis . ".\n"); } exit; } else { if ($to == "") { echop(urldecode($on) . " does not exist" . $fnameis . $lnameis . $pnameis . ".\n"); } else { file_put_contents($to, file_get_contents($to) . urldecode($on) . " does not exist" . $fnameis . $lnameis . $pnameis . ".\n"); } exit; } } $outrep = ""; if (isset($_GET['justreportto'])) { $outrep = urldecode($_GET['justreportto']); if (strpos($outrep, "/") === false && strpos($outrep, "\\") === false) { $outrep = dirname(__FILE__) . "/" . $outrep; } } else if (isset($_POST['justreportto'])) { $outrep = urldecode($_POST['justreportto']); if (strpos($outrep, "/") === false && strpos($outrep, "\\") === false) { $outrep = dirname(__FILE__) . "/" . $outrep; } } if (isset($_GET['justreporton'])) { on_to(urldecode($_GET['justreporton']), $outrep); exit; } else if (isset($_POST['justreporton'])) { on_to(urldecode($_POST['justreporton']), $outrep); exit; } else { if (isset($_GET['fsp'])) { $iscalled = "y"; $fsp = $_GET['fsp']; } else if (isset($_POST['fsp'])) { $iscalled = "y"; $fsp = $_POST['fsp']; } else if ($deadlinks == "") { $fsp = "*"; $ext = ".xml"; } else if ($deadlinks == "n") { $fsp = "*"; $ext = ".php"; } else { $fsp = "index"; $ext = ".html"; } if (isset($_GET['ext'])) { if ($iscalled == "") $fsp = ""; $iscalled = "y"; $ext = $_GET['ext']; } else if (isset($_POST['ext'])) { if ($iscalled == "") $fsp = ""; $iscalled = "y"; $ext = $_POST['ext']; } else if ($iscalled != "") { $ext = ""; } if (isset($_GET['dir'])) { $iscalled = "y"; $dir = $_GET['dir']; } else if (isset($_POST['dir'])) { $iscalled = "y"; $dir = $_POST['dir']; } else if ($deadlinks == "") { $dir = '/'; // '/Library/pgAgent/Downloads/CRL/'; } else if ($deadlinks != "n") { $dir = 'http://'; } if ($iscalled == "") { $outhtml = "\n" . $title . "\n"; $outhtml .= ' '; $outhtml .= '' . "\n"; if (isset($_POST['flist'])) { $outhtml .= "" . $outrepis . "

" . str_replace(" Information ", " Information ", str_replace(">Report", "> Report", str_replace(" Differences ", " Differences ", str_replace("Table", "Table", str_replace(" Report", " Report", $title))))) . "

"; $outhtml .= ''; //$snapshot = $outhtml . "

Please wait while we analyze your URLs ...


"; //echo $snapshot; //$snapshot = "
" . readandprocess($_POST['flist']) . "
"; $outhtml .= "

Please wait while we analyze your URLs ...


"; $outhtml .= "
" . readandprocess($_POST['flist']) . "
"; } else { $outhtml .= "" . $outrepis . "

" . str_replace(" Information ", " Information ", str_replace(">Report", "> Report", str_replace(" Differences ", " Differences ", str_replace("Table", "Table", str_replace(" Report", " Report", $title))))) . "

"; $outhtml .= ''; //$snapshot = $outhtml; } $outhtml .= "
"; $outhtml .= "
"; $outhtml .= "Filepath (or URL):

"; $outhtml .= "Filespec (or Name):

"; $outhtml .= ""; $outhtml .= "


... or ...

"; $moi = $_SERVER['PHP_SELF']; if (1 == 1) { // Thanks to http://www.html5rocks.com/en/tutorials/file/dndfiles/ $outhtml .= ''; if (isset($_POST['prelist'])) { $outhtml .= '
' . urldecode($_POST['prelist']) . '

' . ''; } else { $outhtml .= ''; } $outhtml .= '
'; if ($deadlinks != "") { //$outhtml = $snapshot . '


'; if ($deadlinks == "n") { // differences table ... needs at least two files $outhtml .= '
'; $outhtml .= '


'; } else { $outhtml .= '


'; } } else if ($deadlinks == "n") { // differences table ... needs at least two files $outhtml .= '
'; $outhtml .= '


'; } else { $outhtml .= '


... or ...

'; } $outhtml .= ' ' . $mode . ': '; } else { $outhtml .= '
Browse for local file
'; } $outhtml .= "
"; $outhtml .= ""; } else { $goes = 0; $sdir = "diffs/"; $outhtml = "" . $title . " for " . $dir . $fsp . $ext . "\n"; $dc = "Date"; $sb = "Size (bytes)"; $lc = "Lines"; $wc = "Words"; if ($urlsuffix != "") { if (isset($_GET['differences'])) { $dc = ""; $sb = "Vs"; $lc = "Filename"; $wc = ""; } else { $dc = "URL"; $sb = "Status"; $lc = "On Line"; $wc = "At Column"; } } if ($dir == "") { $outhtml .= "

" . $title . " for " . $dir . $fsp . $ext . "

"; $outhtml .= "" . $dc . "" . $sb . "" . $lc . "" . $wc . ""; } else { $outhtml .= "

" . $title . " for " . $dir . $fsp . $ext . "

Filename
"; $outhtml .= "" . $dc . "" . $sb . "" . $lc . "" . $wc . ""; } // File from 1 of the 2 bottom 2/3 ideas of local files if (strpos($dir . $fsp . $ext, "https:") !== false || strpos($dir . $fsp . $ext, "http:") !== false || strpos($dir . $fsp . $ext, "HTTPS:") !== false || strpos($dir . $fsp . $ext, "HTTP:") !== false) { if (url_exists($dir . $fsp . $ext)) { if (isset($_GET['differences'])) { // file differences table if ($goes == 0) { $outhtml .= " "; exec(' mkdir /tmp/diffs'); file_put_contents("/tmp/diffs/" . basename($dir . $fsp . $ext), file_get_contents($dir . $fsp . $ext)); $ffile = "/tmp/diffs/" . basename($dir . $fsp . $ext); $goes = 1; $sdir = ""; } if ($goes == 1) { $outhtml .= " "; file_put_contents("/tmp/" . $sdir . basename($dir . $fsp . $ext), file_get_contents($dir . $fsp . $ext)); exec(' diff "' . $ffile . '" "/tmp/' . $sdir . basename($dir . $fsp . $ext) . '" > /tmp/diffs/xd.xd '); $outhtml .= ""; exec(' rm -f /tmp/diffs/xd.xd'); exec(' rm -f "' . $ffile . '"'); exec(' rm -f "/tmp/' . $sdir . basename($dir . $fsp . $ext) . '"'); } } else { // non file differences options $cdt = ""; $cont = file_get_contents($dir . $fsp . $ext); if ($urlsuffix != "") { readandprocess($fsp . $ext . "@!~*^@" . $cont); // new ideas here $outhtml .= ""; $urllist = ""; $statuslist = ""; $linelist = ""; $collist = ""; } else { $recs = explode("\n", $cont); $words = explode(" ", $cont); $h = get_headers($dir . $fsp . $ext, 1); // Thanks to http://stackoverflow.com/questions/845220/get-the-last-modified-date-of-a-remote-file $cdt = ""; try { $cdt = $h['Last-Modified']; } catch (Exception $exxx) { $cdt = ""; } $outhtml .= ""; } } } } else { // top third idea from web server files foreach (glob($dir . $fsp . $ext) as $filename) { if (url_exists($filename)) { if (isset($_GET['differences'])) { // file differences table if ($goes == 0) { $outhtml .= " "; exec(' mkdir /tmp/diffs'); file_put_contents("/tmp/diffs/" . basename($filename), file_get_contents($filename)); $ffile = "/tmp/diffs/" . basename($filename); } else if ($goes == 1) { $outhtml .= " "; file_put_contents("/tmp/diffs/" . basename($filename), file_get_contents($filename)); exec(' diff "' . $ffile . '" "/tmp/diffs/' . basename($filename) . '" > /tmp/diffs/xd.xd '); $outhtml .= ""; exec(' rm -f /tmp/diffs/xd.xd'); exec(' rm -f "' . $ffile . '"'); exec(' rm -f "/tmp/diffs/' . basename($filename) . '"'); } $goes = $goes + 1; } else if ($urlsuffix != "") { // dead links report readandprocess($filename . "@!~*^@" . file_get_contents($filename)); // new ideas here $outhtml .= ""; $urllist = ""; $statuslist = ""; $linelist = ""; $collist = ""; } else { // file information table $lines = file($filename); $cwords = 0; foreach ($lines as $line) { $cwords += str_word_count($line); } $outhtml .= ""; } } } if ($goes == 1) { $outhtml .= " "; file_put_contents("/tmp/" . str_replace("/tmp/diffs/", "", $ffile), file_get_contents($ffile)); exec(' diff "' . $ffile . '" "/tmp/' . str_replace("/tmp/diffs/", "", $ffile) . '" > /tmp/diffs/xd.xd '); $outhtml .= ""; exec(' rm -f /tmp/diffs/xd.xd'); exec(' rm -f "' . $ffile . '"'); exec(' rm -f "/tmp/' . str_replace("/tmp/diffs/", "", $ffile) . '"'); } } $outhtml .= "
Filename in " . $dir . "
" . "
" . str_replace($dir, "", $dir . $fsp . $ext) . "" . $urllist . "" . $statuslist . "" . $linelist . "" . $collist . "
" . str_replace($dir, "", $dir . $fsp . $ext) . "" . $cdt . "" . strlen($cont) . "" . count($recs) . "" . count($words) . "
" . str_replace($dir, "", $filename) . "" . $urllist . "" . $statuslist . "" . $linelist . "" . $collist . "
" . str_replace($dir, "", $filename) . "" . date("F d Y H:i:s", filemtime($filename)) . "" . filesize($filename) . "" . count($lines) . "" . $cwords . "
"; } echo $outhtml; } ?>