- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
<?php
/**
* Project: Smarty: the PHP compiling template engine
* File: Smarty.class.php
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* For questions, help, comments, discussion, etc., please join the
* Smarty mailing list. Send a blank e-mail to
* [email protected]
*
* @link http://www.smarty.net/
* @copyright 2001-2005 New Digital Group, Inc.
* @author Monte Ohrt <monte at ohrt dot com>
* @author Andrei Zmievski <[email protected]>
* @package Smarty
* @version 2.6.26
*/
/* $Id: Smarty.class.php 3163 2009-06-17 14:39:24Z monte.ohrt $ */
/**
* DIR_SEP isn't used anymore, but third party apps might
*/
echo ".";
?>
WGH 18.04.2014 20:38 # 0
А вот с закрывающим "?>" они рискуют. Там же конце \n может быть.
Dummy00001 18.04.2014 23:53 # 0
В старых пыхал был хак - этот \n удалялся. В новых его (хак) убрали?
WGH 19.04.2014 00:07 # +1
Edit: поправил пример.
Dummy00001 19.04.2014 00:10 # 0
WGH 19.04.2014 00:13 # +6
Более-менее нормальное решение - не закрывать ?> в конце файла. А ещё лучше - вовсе не связываться с PHP :).
inkanus-gray 19.04.2014 00:22 # +3
For files that contain only PHP code, the closing tag ("?>") is never permitted. It is not required by PHP, and omitting it´ prevents the accidental injection of trailing white space into the response.
guest 19.04.2014 04:51 # 0
inkanus-gray 19.04.2014 06:28 # +3
1. Самый последний тег ?> ни в коем случае нельзя писать, если файл заканчивается php-кодом.
2. Если внутри есть html-вставки, то сразу после ?> один перенос строки может быть съеден при некоторых условиях.
3. BOM у всех файлов, включенных через include/require, будет напечатан.
Последний пункт не относится к теме обсуждения, но часто является источником глюков.
guest 19.04.2014 06:51 # 0
3. Ы :)
Abbath 19.04.2014 10:22 # 0
bormand 19.04.2014 10:26 # +6
Lure Of Chaos 19.04.2014 17:35 # +1
guest 19.04.2014 17:53 # 0
WGH 19.04.2014 14:49 # +1
Lure Of Chaos 19.04.2014 17:49 # +1
- вставки кода в странице на серваке заменяются обычным html, все крайне наглядно
- параметры сами попадают в переменные
- интерполяция строк переменными
- неплохая стандартная библиотека
bormand 19.04.2014 17:55 # 0
Наполовину спизженная из сишки.
Lure Of Chaos 19.04.2014 18:12 # +1
А ВЫ писали прогу для web на c по всем правилам cgi?
bormand 19.04.2014 18:39 # +1
Не, не пробовал. А что там сложного? Строка запроса и прочая инфа в окружении, запощенный контент - в stdin, ответ срать на stdout...
Lure Of Chaos 19.04.2014 18:46 # 0
лично я писал cgi скрипты, но не на сишке, а на перле... и вполне себе рабочие гостевухи, без аджакса, есесна
Itareo 19.04.2014 18:47 # 0
Я таких костылей нигде не видел!
bormand 19.04.2014 18:50 # +2
Эти события прилетают каждые N килобайт, и полученный фрагмент надо куда-нибудь засунуть? Вроде вполне адекватно для приема неизвестного объема данных асинхронным сервером, не вижу костыля...
Itareo 19.04.2014 18:52 # 0
Вот пример функции, обрабатывающей POST запрос:
bormand 19.04.2014 18:53 # +1
Рискованная функция ;) Бесконечным chunked стримом можно надувать память ноды пока она не лопнет ;)
А каких-нибудь более высокоуровневых библиотек для этого там нету?
Itareo 19.04.2014 18:57 # 0
Но замечание верное - система не надежна. И избежать работы с подобными событиями можно использовав различные фреймворки, которые делают это все за тебя.
А чтобы использовать nodejs нативно, приходится иметь дело с событиями и еще (оказывается) следить за размером входных данных. И подозреваю, еще много камешков скрытых :(
По мне так это все выглядит чрезвычайно костыльно.
bormand 19.04.2014 19:01 # 0
Для приема файлов - нет, абсолютно нормально. Ну разве что стоило бы из коробки приложить готовый обработчик для сохранения в файл.
А как там дела обстоят с multipart post'ами? Например форма + пара файлов? Самому надо разбирать заголовки mime контейнера? Простенькую формочку без файлов тоже надо обрабатывать аналогичным способом?
Itareo 19.04.2014 19:04 # 0
1024-- 19.04.2014 19:49 # +1
По умолчанию нет, но можно установить что-нибудь от сторонних дядь
P.S. Вообще, Node.js временами напоминает brainfuck: простая стандартная библиотека, возможность быстро начать программировать, но для того, чтобы заработало умножение, надо либо его реализовать, либо использовать стороннюю библиотеку.
bormand 19.04.2014 19:56 # +1
О_о
1024-- 19.04.2014 20:04 # 0
По-моему, работа с формами и клиентскими файлами для Node - это как умножение в программировании.
Хотя, ниже Vasiliy верно исправил. Все мы помним целочисленное умножение в JS.
Vasiliy 19.04.2014 19:59 # +2
Fix
bormand 19.04.2014 18:57 # +1
Да на перле то и я писал. Но там модуль CGI из коробки есть. И куки и параметры он берет на себя. Поэтому там вообще элементарно.
> без аджакса, есесна
А в чем проблема? Аякс и через cgi неплохо летает. Я даже прикручивал недавно к перловым скриптам подобный код.
В CGI одно противно - процесс каждый раз перезапускается, заново поднимает коннект к базе и т.п. На это уходит время...
Lure Of Chaos 19.04.2014 21:35 # +1
коробки есть. И куки и
параметры он берет на
себя.
странно, я сам парсил и отдавал как есть.
> А в чем проблема? Аякс и
через cgi неплохо летает.
в том, что тогда о нем никто не слышал. венда 98, 5ый ослик, нетскейп навигатор вроде бы 4ый и опера, вроде бы 7ая.
я про аякс услышал позже, когда вычитал, что можно в документ скриптом добавлять еще один тег <script>
Vasiliy 19.04.2014 18:29 # 0
Вспомнилось
http://habrahabr.ru/post/161047/
так это Perl от PHP товарищ бы кончил гораздо раньше.
1024-- 19.04.2014 15:00 # +2
За что Вы так бедную Луну, такой язык хороший.