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

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

Колориметрия и печать: технологии
 
Текущее время: 17:22, Сб, 28 мар 2020

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


Новые
ответы
в темах:



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

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 931
Откуда: Москва
Когда писал спектральный калькулятор захотелось передавать скрипту данные не только из формы но и в виде обычного текстового файла. Вот как это происходит:
Передадим обычной 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


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

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


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

Перейти: 

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