|
|
|
| Здравствуйте! у меня есть файлик, вот его код:
<html>
<head>
<title>Редактирование файла</title>
</head>
<body>
<form method=GET>
<input type=text value="clan/AddChempion.php" size=30 name=url>
<input type=button value="Обзор">
<input type=submit value="Открыть">
</form>
<?php
// подавляем предупреждение
error_reporting(0);
function highlight_code($code)
{
$code = stripslashes($code);
if(!strpos($code,"<?") && substr($code,0,2)!="<?") {
$code="<?php\n".trim($code)."\n?>";
}
$code = trim($code);
return highlight_string($code,true);
}
if ($_GET['url'])
{
if(preg_match('/^[a-z0-9-_~@\/\:\(\)\.\d]+$/i', $url=$_GET['url']))
{
$file_array = file($url);
if(!$file_array)
{
echo("Ошибка открытия файла");
}
else
{
for($i=0; $i < count($file_array); $i++)
{
$str_file.=$file_array[$i];
}
}
$str_file=highlight_code($str_file);
$y=count($file_array)
?>
<form method=GET>
<TEXTAREA rows=<? echo($y); ?> cols=150><? echo($str_file); ?></textarea>
</form>
<?
}
}
?>
</body>
</html>
|
По моей задумке он должен выводить в TextArea подсвеченный код заданной странички для последующего редактирования.
Когда выводилось не в TextArea - текст был подсвечен, а как только я заключил выводимый текст в это поле - вся подсветка исчезла. Может можно как-то сделать текст снова подствеченным? | |
|
|
|
|
|
|
|
для: victoor
(03.11.2006 в 01:49)
| | в общем лучше вводимый в TextArea код выводить в соседний див и там его подсвечивать, иначе надо заключать слова в теги + нехилое знание регулярных выражений | |
|
|
|
|
|
|
|
для: Lelik
(03.11.2006 в 02:29)
| | так вся фишка в том, чтобы его можно было редактировать - это планируется редактор скриптов на сервере.
вновь вводимый текст подсвечиваться недолжен, подсвечиваться должен только тот текст, который в файле был.
Хотя если кто даст скриптик, который и вновь вводимый код будет подсвечивать - будет супер | |
|
|
|
|
|
|
|
для: victoor
(03.11.2006 в 13:27)
| | идею понял. Типа редактор кода в браузере (а-ля Дримвивер или Ню сфер). В общем моя мысль такова - скриптик стоит денег ибо это весьма хитромудрый прикол, а вот идею как его заделать могу подсказать:
Див - поле для ввода - ловит все нажатия клавиш и отображает их прокомпелированиые коды уже как символы. Трудность в двух вещах :
1. Это устроить, так, чтоб при нажатии на клавиши текст загонялся в див (но эт не особо сложно)
2. А вторая трудность - это писанина кода на разных языках (английский, русский и т. д.) | |
|
|
|
|
|
|
|
для: Lelik
(03.11.2006 в 13:52)
| | > 2. А вторая трудность - это писанина кода на разных языках (английский, русский и т. д.)
ну это несложно сделать, если так клавиши не различаются (в чем я все же сомневаюсь) можно сделать простой переключатель на самой страничке...
но тогда появится еще одна сложность: как выбрать месть, куда вводить текст (не только в конец, но и в середуну)..
Спасибо за идею, буду думать. | |
|
|
|
|
|
|
|
для: victoor
(03.11.2006 в 14:11)
| | Подсвечивается редактируемый код, как известно, только в iframe с параметром designMode=on (если не учитывать некроссбраузерное решение с contentEditable) . Опера - с 9-й версии. Так делается в любом визуальном графическом редакторе. Берите любой подходящий. Но подсветку в бесплатных открытых вариантах не видел. Придётся писать самому или искать того, кто разрабатывал. | |
|
|
|
|
|
|
|
для: 12345
(03.11.2006 в 14:21)
| | а как-нибудь можно потом выдрать этот текст в какую-нибудь переменную php (из iframe)?
А что это за некроссбраузерное решение с contentEditable? Если оно в IE будет работать - меня устроит. Этот редактор я для личного пользования разрабатываю, и работаю пока именно в IE. | |
|
|
|
|
|
|
|
для: victoor
(03.11.2006 в 19:15)
| | >А что это за некроссбраузерное решение с contentEditable? Если оно в IE будет работать - меня устроит. Этот редактор я для личного пользования разрабатываю, и работаю пока именно в IE.
ага, только в ИЕ | |
|
|
|
|
|
|
|
для: victoor
(03.11.2006 в 19:15)
| | Берут innerHTML, переносят в форму, отправляют.
По термину см. поиск в и-нете, частично - здесь. | |
|
|
|