| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > как закинуть html cnраницу в ob_start |
| Автор: kelario 23.11.2009, 12:17 | ||
| Доброе утро понедельника. У меня есть html страница.Мне нужно записать в неё х значения и сохранить.
естественно php встретив html теги начинает ругаться.Как это обойти и сохранить файл ? Может есть альтернатива ob-start ? Спасибо. |
| Автор: MoLeX 23.11.2009, 12:30 | ||||
Добавлено через 53 секунды kelario, 1. необходимо изучить основы PHP и HTML 2. в скрипты вставляй
|
| Автор: Ипатьев 23.11.2009, 12:52 | ||
Чтобы РНР не ругался, надо просто сказать ему, что дальше идут теги
очень просто а еще лучше - вообще не использовать неочевидный механизм, смысл которого вам непонятен. Для чего понадобилось "закидывать" страницу в ob_start()? |
| Автор: MoLeX 23.11.2009, 13:53 |
не пройдет |
| Автор: kelario 23.11.2009, 16:54 | ||||||
Спасибо! Это так очевидно было,но за неимением опыта я об этом даже не подумал.Основы PHP конечно знать надо,но обучаться по ходу дела все же легче и интереснее.
разве встретив ?> пхп не прекратит обрабатывать дальнейший код ? на счет того,зачем мне ob_start у меня Х одинаковых страниц с разным содержимым.И это скрипт их создающий.Более чем вероятно,что есть более рациональный и менее ресурсоемкий способ,но я о нем не знаю поскольку
если подскажите как сделать это правильнее,буду только рад Спасибо. |
| Автор: kelario 23.11.2009, 17:22 | ||
следовательно то,что между двумя ? в ob_start не попадет,ведь так? |
| Автор: Ипатьев 23.11.2009, 17:27 |
| А куда оно должно пропасть? И зачем? PHP изначально задумывался так, чтобы в противовес перлу у него ошибки могли выводиться на экран и его можно было встраивать прямо в HTML И только потом выяснилось, что и то и другое - неправильно |
| Автор: kelario 23.11.2009, 17:33 | ||||
В файл Х-нный с новыми значениями переменных.Понятно, что
|
| Автор: Ипатьев 23.11.2009, 17:53 |
| Не понял этого "но тем не менее". вы уже сделали хоть один сайт по обычной схеме? или вас что-то не устраивает из теоретических соображений? |
| Автор: kelario 23.11.2009, 18:15 |
| Не цепляйтесь так к словам. меня все утсраивает,просто хочется закончить то,что начал. |
| Автор: bars80080 23.11.2009, 18:28 |
да никто не цепляется, просто хочется знать - зачем? вот я никогда не пользовался всякими ob_, а потому интересно, какая цель может сподвигнуть на это действие |
| Автор: kelario 23.11.2009, 18:57 |
| Зачем - я писал выше.Использую ob_ попросту потому,что это первое,что попалось мне под руку.Я осознаю,что можно как то сделать проще и быстрее,но просто я не знаю как Если кто ни будь поделится ссылочкой на скрипт дающий нужный результат,буду признателен. |
| Автор: Ипатьев 23.11.2009, 19:26 |
| Вам предложили Вы просто не читаете. Главный принцип программирования - это разделение. Разделение кода и данных. Разделение данных и оформления. В вашем случае данные и оформление надо хранить отдельно. к примеру, введенные в форму данные записывать в текстовый файл. по строке на форму. А лучше - в базу данных. плюс написать скрипт с шаблоном HTML плюс написать скрипт с программой. который берет данные из текстового файла, забивает в шаблон и отдает пользователю. |
| Автор: nerezus 23.11.2009, 19:54 | ||
| MoLeX, ?> html html <? Неужели твоя IDE - это блокнот?) Ты же рушишь всякую подсветку и автокомплиты своими echo "дохрена строк";
Если шаришь в английском, что читай книгу от зенда. |
| Автор: kelario 24.11.2009, 01:32 | ||||
Спасибо всем за советы.
наверное так и попробую сделать. у меня возник еще один вопрос.Он не по теме,но открывать новую наверное нет нужды. Мне нужно,что бы пользователь на сервер залил файл,картинку.Вроде бы всё должно быть просто,но у меня проблемы с
Дело в том,что мне нужно сохранить картинку в определенном месте и в то же время передать в переменную название этой картинки.Если в форме не ставить enctype,то никакая картинка никуда не сохраняется.Но если его поставить,то имя файла не удается занести в переменную. Как убить двух зайцев ? или может быть файлу при сохранение можно задать имя ? |
| Автор: bars80080 24.11.2009, 01:36 |
можно. при сохранении с помощью move_upload_file() просто указываешь новое имя и всё |
| Автор: Ипатьев 24.11.2009, 01:41 |
| проблема не в имени файла. закачать можно только с multipart/form-data если какие-то проблемы при этом - они не от enctype а от кучи других причин. в документации смотрим пример, выводим еррор, исправляем позор сдается мне, вы, как и многие новички, наивно полагаете, будто файло можно легко скопировать с жетского диска пользователя. а от формы вам нужно только имя файла. |
| Автор: MoLeX 24.11.2009, 06:14 |
notepad++ и phpDesigner 7, это к делу не относится в данном случае суть не меняется, и автору нагляднее - если надо вывести то использовать echo ... |
| Автор: K0T9I 24.11.2009, 07:26 | ||||||||
суперглобальный массив $_FILES:
в $filename будет имя файла, а сам файл скопируется в каталог $some_path. я правильно тебя понял? |
| Автор: bars80080 24.11.2009, 10:40 |
| K0T9I, вот я, насколько понимаю, copy() - запись дубликата файла, а move_upload_file() - просто изменение адреса. зачем учить более затратным механизмам? |
| Автор: kelario 24.11.2009, 11:54 | ||
Да! Абсолютно правильно!Спасибо! Я просто пытался получить имя файла по аналогии со скажем текстовым полем.То есть $filename=$_POST['filename'] .Без enctype кстати прокатывало Спасибо еще раз! |
| Автор: K0T9I 24.11.2009, 11:54 |
| я понимаю, что есть правило, насвинячил - приберись. но файл загружается во временную папку и сборщик мусора php его удалит, поэтому столь важным этот принцип здесь не является. а вообще функция move_uploaded_file конечно гораздо лучше, copy использую по привычке. в одном вы не правы, move_uploaded_file копирует файл, если источник и назначение в разных дисковых разделах, и переносит если в одном. |
| Автор: bars80080 24.11.2009, 12:56 | ||
ну, мы же не знаем, на одном диске или на разных. |
| Автор: K0T9I 24.11.2009, 13:49 |
| я хотел сказать просто, что почти всегда move_uploaded_file и copy идентичны по действию. в зависимости от расположения файла эта функция может вести себя и как copy, и как rename, только с доп. проверкой того что файл является загруженным. а большинстве случаев временная папка расположена в другом разделе, поэтому почти всегда move_uploaded_file аналогична copy, за исключением проверки. как-то так, а в остальном я с вами согласен, что неправильный метод дал |