Колориметрия, печать и препресс: технологии Главная Форум Галерея Контакты Download Статьи
Сражаясь неустанно,
доживём мы, Санчо,
до Золотого века!
 

Форум колористов и полиграфистов

Колориметрия и печать: технологии
 
Текущее время: 1:02, Вт, 13 ноя 2018

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 16:55, Чт, 12 апр 2012 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 812
Откуда: Москва
Когда писал спектральный калькулятор захотелось передавать скрипту данные не только из формы но и в виде обычного текстового файла. Вот как это происходит:
Передадим обычной html-формой текстовый файл нашей странице spectralcalc.php:
<form name="input_file" method="post" enctype="multipart/form-data" action="spectralcalc.php">
<label>Текстовый файл с данными: <input type="file" name="file" id="file" /></label>
<input type="submit" value="Отправить">
</form>
Теперь получим файл на этой странице и обработаем его:
<?php
$file=$_FILES["file"]["tmp_name"];
$filetype=$_FILES["file"]["type"];
if($filetype=='text/plain'){
$contentfileimpl = implode("",file($file));
$contentslashes=addslashes($contentfileimpl);
$getfile2=str_ireplace("\r\n",";&;",$contentslashes);
$getfile1=str_ireplace("\r",";&;",$getfile2);
$getfile=str_ireplace("\n",";&;",$getfile1);
}
else {
	$getfile='';
}
?>
Как видно здесь присутствует условие: обрабатываться будет только текстовый файл text/plain. В нем мы экранируем кавычки командой addslashes и заменяем символы абзацев для разной кодировки (маковской, юниксоидной и виндовой) на редкое сочетание символов (в приведенном примере - ;&; ) с помощью функции str_ireplace. Если оставить абзацы как есть и не экранировать кавычки то ничего далее не получится - мы получим просто кривой html-код.
Теперь передадим содержимое php-переменной $getfile переменной getfile на javascript и выведем его в текстовое окно input формы spectr:
<script type="text/javascript">
getfile = '<?php echo $getfile; ?>';
if (getfile != ''){
getfile = str_ireplace(getfile,';&;','\n');
document.spectr.input.value = getfile; 
}
</script>
Можно заметить, что в PHP есть функция замены элементов строки str_ireplace а в javascript придется написать подобную функцию, чтобы заменить наши символы ;&; на абзац. Экранированные кавычки \" сами станут нормальными. Вот функция str_ireplace на javascript:
function str_ireplace(txt,cut_str,paste_str)
{
var f=0;
var ht='';
ht = ht + txt;
f=ht.indexOf(cut_str);
while (f!=-1){
f=ht.indexOf(cut_str);
if (f>0){
ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
}
}
return ht
}
Теперь в textarea с именем input мы видим наш текстовый файл так, как если бы смотрели его нотпадом. Сценарий на JavaScript получил содержимое текстового файла при помощи PHP, к сожалению совсем без помощи PHP передать файл в сценарий JavaScript только средствами html и JavaScript не получится.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

cron
© CIELab.XYZ
Создано на основе phpBB® Forum Software © phpBB Limited
Конференция запущена 18 августа 2004 года | Защищено от спама системой stopforumspam
Всего посещений - 4675375 | Всего за день - 1330 | Уникальных сегодня - 301, вчера - 329, позавчера - 273