<?php
// http://dev/test/books/ledford/edservertxt.php
// J:\dev_web\htdocs\inc\utl\edservertxt.php
//228 PA R T I I I The Android Platform
//C H A P T E R 1 2 Developing Mobile Web Applications 227
// http://dev/inc/utl/edservertxt.php?file=J:\dev_web\htdocs\z_doc\learnng\ng_1_3_8\tema/examples_tema/02_01/finished/angular/index.html&line=1&prev=10000&next=10000
if (isset($_GET['file'])) {
$file = str_replace('/',DIRECTORY_SEPARATOR, $_GET['file']);
}
else {
$file = str_replace('/',DIRECTORY_SEPARATOR, $_SERVER['SCRIPT_FILENAME']);
}
$file = str_replace(DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
,DIRECTORY_SEPARATOR, $file) ; // realpath
$thedir=dirname($file);
//
echo 'thedir='.$thedir ;
echo '<br />'.'file='.$file ;
//
$ext[1]="txt"; $ext[0]="TXT";
$ext[3]="html"; $ext[2]="HTML";
$ext[5]="php"; $ext[4]="PHP";
//
syslog(LOG_INFO, "{$_SERVER['REMOTE_ADDR']}: Remote Edit Accessed.");
//
/* *******************************************
1. NIJE P O S T: F O R M A sa gumbom "O p e n"
*********************************************/
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
if(is_readable($thedir))
{
head();
echo "<form action=\"" . basename($_SERVER['PHP_SELF']);
echo "\" method=\"post\">\n";
echo "<select name=\"the_file\">\n";
chdir($thedir);
$filelist=d2a($thedir, true);
foreach($filelist as $file)
{
$ex=substr(strrchr($file, '.'), 1);
if(in_array($ex,$ext) && is_writable($file))
{
echo "<option value=\"$file\">$file</option>\n";
}
}
echo "</select>\n";
echo "<br/>\n";
echo "<input type=\"submit\" name=\"open\"";
echo "value=\"Open\"/>\n";
txtarea("");
tail();
}
else
{
reply("Error: Bad directory (nije readable).\n");
}
} // kraj NIJE P O S T: F O R M A
// ***********************************
//
/* *****************************************
OBRADA UNESENOG U F O R M U
o p e n, s a v e t x t - a
********************************************/
// 1. p o s t o p e n
else if(isset($_POST['open']))
{
if(is_writable($_POST["the_file"]))
{
$file2open=fopen($_POST["the_file"], "r");
$current_data=@fread($file2open,
filesize($_POST["the_file"]));
// echo preg_replace($pattern, $replacement, $string);
$current_data= preg_replace("</textarea>", "<DO-NOT-EDIT>", $current_data);
//$current_data=eregi_replace("</textarea>", "<DO-NOT-EDIT>", $current_data);
head();
echo "<form action=\"" . basename($_SERVER['PHP_SELF']);
echo "\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"cur_file\" ";
echo "value=\"" . $_POST["the_file"] . "\"/>\n";
echo $_POST["the_file"];
echo "<br/>\n";
echo "<input type=\"submit\" name=\"save\" ";
echo "value=\"Save\"/> ili zatvorite ovaj dokument u ibrowseru \n";
txtarea($current_data);
tail();
fclose($file2open);
}
else
{
reply("Error: Cannot open file.\n");
}
}
// 1. p o s t s a v e
else if(isset($_POST['save']))
{
if(is_writable($_POST["cur_file"]))
{
$file2ed=fopen($_POST["cur_file"], "w+");
$data_to_save=$_POST["mods"];
$data_to_save= preg_replace("<DO-NOT-EDIT>", "</textarea>", $data_to_save);
//$data_to_save=eregi_replace("<DO-NOT-EDIT>", "</textarea>", $data_to_save);
$data_to_save=stripslashes($data_to_save);
if(fwrite($file2ed,$data_to_save))
{
reply("File saved.\n");
fclose($file2ed);
}
else
{
reply("Error: Cannot save file.\n");
fclose($file2ed);
}
}
else
{
reply("Error: Cannot save file.\n");
}
}
//
//
//
function head()
{
echo "<html>\n";
echo "<head>\n";
echo "<title>\n";
echo "Remote Editor\n";
echo "</title>\n";
echo "</head>\n";
echo "<body>\n";
}
function tail()
{
echo "</body>\n";
echo "</html>\n";
}
function reply($text)
{
head();
echo $text;
echo "<br/>\n";
//echo "<a href=\"\">Back to editor</a>.\n";
?>
<a href="http://dev/inc/utl/edservertxt.php?file=<?php
echo $file //dirname(dirname(__FILE__)) .'/examples_tema/02_01/finished/angular/index.html'
;
?>" target="_blank">Back to editor</a>
<?php
tail();
}
function txtarea($text)
{
if( strpos( $_SERVER['HTTP_USER_AGENT'],
'Android') !== FALSE)
{
$Android=1;
$rows=5;
$cols=30;
} else
{
$Android=0;
$rows=30;
$cols=80;
}
echo "<br/>\n";
if($Android == 1)
{
echo "<span style=\"-webkit-box-shadow:10px 10px 5px #888;\">\n";
}
echo "<textarea name=\"mods\" rows=\"";
echo $rows . "\" cols=\"" . $cols . "\">\n";
echo $text;
echo "</textarea>\n";
if($Android == 1)
{
echo "</span>\n";
}
echo "<br/>\n";
echo "</form>\n";
}
function d2a($dir, $recurse)
{
$me=basename($_SERVER['PHP_SELF']);
$files=array();
if($handle=opendir($dir))
{
while(false !== ($file=readdir($handle)))
{
if($file != "." &&
$file != ".." &&
$file != $me &&
substr($file,0,1) != '.')
{
if(is_dir($dir. "/" . $file))
{
if($recurse)
{
$files=array_merge($files, d2a($dir. "/" .
$file,
$recurse));
}
}
else
{
$file=$dir . "/" . $file;
$files[]=preg_replace("/\/\//si", "/", $file);
}
}
}
closedir($handle);
asort($files);
}
return $files;
} // e n d f n d 2 a
?>
|