Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Search found 21 matches
Author Message
  Topic: Рисование в SVG
NectarIn

Replies: 1
Views: 6092

PostForum: Разное :: PHP   Posted: Wed Jan 26, 2011 2:08 pm   Subject: Рисование в SVG
День добрый!
Возникла задача рисовать сложные диаграммы в формате SVG посредством PHP. Примерное описание диаграмм: плоские графики с направленными связями, то есть с элементами графов.
Последовательно были просмотрены:

Библиотека Библиотека Библиотека
Всякие сниппеты вроде php svg diagram, найденные в дебрях Интернета и датированные 2002-м годом, не рассматривались.
Конечно, всегда можно попробовать написать нужное самостоятельно, но пока что жива надежда, что найдётся инструмент, позволяющий выполнять базовые простые операции с элементами рисунка, например, расположить два прямоугольника и связать их стрелкой. Так, чтобы можно было задать размеры и расположение прямоугольников, но не заботиться о положении стрелки, к примеру. Возможно, кто-то сталкивался с подобной задачей?
  Topic: Выделение памяти под параметры функции
NectarIn

Replies: 7
Views: 16962

PostForum: Разное :: PHP   Posted: Tue Jan 11, 2011 2:01 pm   Subject: Выделение памяти под параметры функции
Удалось понять всё в деталях. Оформил выводы в виде небольшой статьи: http://nectarin.livejournal.com/100637.html
Спасибо Юрию за наводящие мысли и дельные советы.
  Topic: Выделение памяти под параметры функции
NectarIn

Replies: 7
Views: 16962

PostForum: Разное :: PHP   Posted: Sun Dec 26, 2010 4:19 pm   Subject: Выделение памяти под параметры функции
Да, действительно PHP и здесь удивил. Работает так же, как и при вызове функций (так что не в вызове дело).
Три простых теста:
function main() {
// INIT.
$start = 0;
echo '<b>MEMORY TESTS</b><br /><pre>';
$start = memory_get_usage();

// START.
$var = str_repeat('A', 100000);
echo 'BEFORE COPY: ', memory_get_usage() - $start, "\n";
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
$var5 = $var;
echo 'BEFORE LINK: ', memory_get_usage() - $start, "\n";
$ref1 =& $var;
$ref2 =& $var;
$ref3 =& $var;
echo 'AFTER LINK: ', memory_get_usage() - $start, "\n";
}

main();

// Выделяется 1 лишний блок.

function main() {
// INIT.
$start = 0;
echo '<b>MEMORY TESTS</b><br /><pre>';
$start = memo ...
  Topic: Выделение памяти под параметры функции
NectarIn

Replies: 7
Views: 16962

PostForum: Разное :: PHP   Posted: Fri Dec 24, 2010 10:41 pm   Subject: Выделение памяти под параметры функции
В большинстве случаев Ваш вопрос не будет актуален. Где Вы используете подобный код и зачем?
Согласен. Нигде. Ситуация возникла в ходе экспериментов.

А вообще, это может иметь некоторую логику — ведь если передавать и значение и ссылку в функцию, то для использования копирования-при-записи нужно быть аккуратным с тем фактом, что копировать значение придется и при изменении исходной переменной (мы ведь передали не только значение, но и ссылку на исходную переменную). Видимо, PHP в таком случае считает, что лучше скопировать переменные и не париться, чем париться со ссылками.
Не могу согласиться. PHP нормально обрабатывает подобные ситуации, когда речь не идёт о вызове функции. Если передача по значению эквивалентна "$param = $var", а передача по ссылке эквивалентна "$param =& $var", то всё должно работать и так, для ZE это не должно составлять проблемы (как мне кажется). Тем более непонятен тот факт, что в одном случае выделяется 1 блок памяти, а в другом несколько - если бы ра ...
  Topic: Выделение памяти под параметры функции
NectarIn

Replies: 7
Views: 16962

PostForum: Разное :: PHP   Posted: Fri Dec 24, 2010 9:08 pm   Subject: Выделение памяти под параметры функции
Вы самое главное не указали: какая у Вас операционная система?
Честно говоря, не думал, что это может играть роль. Тестировал на Windows Server 2003, только что на FreeBSD на хостинге... Ещё днём скидывал друзьям, они тестировали на 5.2.16, скорее всего на Убунте.
Точные числа на Windows и FreeBSD различаются, но эффект в целом тот же.
К слову: а как могла повлиять операционная система?..
  Topic: Выделение памяти под параметры функции
NectarIn

Replies: 7
Views: 16962

PostForum: Разное :: PHP   Posted: Fri Dec 24, 2010 6:08 pm   Subject: Выделение памяти под параметры функции
Вечер добрый.
Сегодня при экспериментировании с отложенным копированием и передачей по ссылке обнаружил довольно любопытное поведение.
Тестовый код выглядит так:
function main() {
// INIT.
$start = 0;
echo '<b>MEMORY TESTS</b><br /><pre>';
$start = memory_get_usage();

// START.
$var = str_repeat('A', 9952);
echo 'BEFORE CALL: ', memory_get_usage() - $start, "\n";
same($start, $var, $var, $var, $var, $var);
echo 'AFTER RETURN: ', memory_get_usage() - $start, "\n";
}

main();

function same($start, $var1, $var2, $var3, $var4, & $var5) {
echo 'AFTER CALL: ', memory_get_usage() - $start, "\n";
// Ничего не делаем...
echo 'BEFORE RETURN: ', memory_get_usage() - $start, "\n";
}

В данном тесте я передаю одну и ту же переменную в ...
  Topic: Как заставить работать Zend Studio... Или какие альтернативы
NectarIn

Replies: 11
Views: 9925

PostForum: Разное :: PHP   Posted: Mon Jun 16, 2008 10:44 pm   Subject: Как заставить работать Zend Studio... Или какие альтернативы
Всем спасибо за советы, буду пробовать разное...
  Topic: Как заставить работать Zend Studio... Или какие альтернативы
NectarIn

Replies: 11
Views: 9925

PostForum: Разное :: PHP   Posted: Sun Jun 15, 2008 8:41 pm   Subject: Как заставить работать Zend Studio... Или какие альтернативы
Всем доброго вечера.
Столкнулся с проблемой использования какого-нибудь нормального редактора, достал Zend Studio 5.5, но есть непонятные проблемы... Ставлю, работает, настраивается, радует... После закрытия может открыться ещё несколько раз и проработать разное время, но в один прекрасный момент запускаться перестаёт. Ошибок никаких, удаление конфигурации не помогает. В чём может быть проблема?
Или какие есть альтернативы, сравнимые по функциональности?..
Заранее благодарю за помощь, а то надоело блокнотить.
  Topic: Определение абсолютного пути
NectarIn

Replies: 8
Views: 6560

PostForum: Разное :: PHP   Posted: Fri Apr 25, 2008 5:20 pm   Subject: Определение абсолютного пути
Юрий, можете дать ссылку? Не представляю, где искать Ваш файловый менеджер... Спасибо.
  Topic: Определение абсолютного пути
NectarIn

Replies: 8
Views: 6560

PostForum: Разное :: PHP   Posted: Fri Apr 25, 2008 11:12 am   Subject: Определение абсолютного пути
Rumata, к сожалению, это не вариант, поскольку realpath работает только для существующих файлов. Например, я захочу использовать функцию создания файла с автоматическим созданием папок, ведущих к нему?
оба случая - суть пути относительные.
Но, тем не менее, их ведь можно использовать, как абсолютные, неоднозначности я здесь не вижу...
  Topic: Определение абсолютного пути
NectarIn

Replies: 8
Views: 6560

PostForum: Разное :: PHP   Posted: Thu Apr 24, 2008 9:34 pm   Subject: Определение абсолютного пути
Простейший пример (в сущности, отражающий источник проблемы) - файловые функции (самописные), например, для удаления или копирования папок... Поскольку встроенные функции, выполняющиеся внутри самописных, будут отталкиваться уже от другого файла.
  Topic: Определение абсолютного пути
NectarIn

Replies: 8
Views: 6560

PostForum: Разное :: PHP   Posted: Thu Apr 24, 2008 8:18 pm   Subject: Определение абсолютного пути
Тут возник вопрос по определению пути в файловой системе... Как узнать, абсолютный он или нет? Realpath не годится, поскольку работает только для существующих файлов. Нужна какая-то простая проверка операционной системы, но тут у меня явная недообразованность в адресации файлов в разных системах. В никсах можно проверить первый символ, в винде поискать двоеточие. А что делать в маке и других операционках? Кто подскажет?..
Заранее благодарен.
  Topic: Объясните мне пожалуйста смысл интерфейсов.
NectarIn

Replies: 19
Views: 15690

PostForum: Разное :: PHP   Posted: Wed Apr 16, 2008 7:38 pm   Subject: Объясните мне пожалуйста смысл интерфейсов.
Единственный плюс интерфейсов получается во множественной имплементации (и то только потому, что в PHP нет множественного наследования). Хотя, если посмотреть повнимательнее, то можно заметить, что наследование обычно применяется, чтобы делать классы и объекты, а интерфейсы - чтобы определять, насколько тот или иной объект соответствует запрошенному типу. Похоже, что это основное применение интерфейсов... Хотя мне ещё тоже не приходилось. :-)
А вообще я за множественное наследование. Поскольку, как мне кажется, некорректно лишать программиста возможностей, которые кому-то представляются опасными. Если квалификация программиста недостаточна, он не будет понимать до конца всех нюансов применения множественного наследования и наделает бед. Но если он понимает, то и применять этот "опасный" и мощный инструмент будет аккуратно и без негативных последствий... А то так можно и интерфейсов лишиться, потому что кому-то они покажутся бесполезными, а на деле лень реализовывать. ;-)
  Topic: DOMException: "No Modification Allowed Error"
NectarIn

Replies: 0
Views: 3485

PostForum: Разное :: PHP   Posted: Wed Apr 16, 2008 7:09 pm   Subject: DOMException: "No Modification Allowed Error"
Тут возникла проблема при построении XML-документа. Код (в упрощённом варианте) таков:

$object = new domElement('element');
$object->appendChild(new domComment(iconv('windows-1251', 'utf-8', ' Текст комментария... ')));
$value = new domElement('value');
$value->appendChild(new domText(iconv('windows-1251', 'utf-8', 'Текущее значение')));
$object->appendChild($value);

При любом вызове метода appendChild выскакивает исключение, указанное в теме... Либо я что-то не понимаю, либо чего-то не знаю. ;-) Подскажите, пожалуйста, что-нибудь...
  Topic: Ядро CMS
NectarIn

Replies: 4
Views: 4922

PostForum: Разное :: PHP   Posted: Sun Mar 09, 2008 9:39 pm   Subject: Ядро CMS
По себе могу сказать, что главная деталь любого оружия это голова его владельца. Когда я начинал знакомство с PHP, придумал простенькую концепцию обработки и вперёд. За 3 месяца минимальный функционал был готов, но теперь мне стыдно это вспоминать... =) Тогда же решил писать "по уму", много думать. Итог: прошёл год, исписаны горы бумаги, и потихоньку я только начинаю собственно кодить. Но зато в голове вертится нечто глобальное, красивое, неземное... Я над некоторыми вопросами недели размышлял. =) Поэтому мой Вам совет - думайте и рисуйте. Если навык проектирования есть, результаты будут сразу. Если нет (как у меня), поначалу будет туго и безрезультатно... =) Но неделя бумаги стоит трёх недель кодинга. Стоит.
Ещё есть совет придумать принципы и требования, которым будет соответствовать система. Если нет чётких требований, то и результата чёткого не будет никогда.
  Topic: DOM и XML (XHTML)
NectarIn

Replies: 6
Views: 4742

PostForum: Разное :: PHP   Posted: Sun Mar 09, 2008 9:12 pm   Subject: DOM и XML (XHTML)
Конечно, это смешное решение, но если нужен номер строки, сделайте saveXML и далее...
echo substr_count(substr($xmltext, 0, strpos($xmltext, '<block')), "\n") + 1;

Насчёт третьего вопроса надо посмотреть метод loadHTML, может, чем поможет... (Сам не пробовал, просто говорю, что методы для работы с HTML есть.) Если потом можно сделать всё тот же saveXML, то вопрос решён.
  Topic: T,T,T и еще раз T
NectarIn

Replies: 6
Views: 4863

PostForum: Разное :: PHP   Posted: Wed Feb 27, 2008 11:22 pm   Subject: T,T,T и еще раз T
У меня лично делфовская ассоциация с TYPE... =)
  Topic: Сайт на двух (или более) языках. Как лучше и проще сделать поддержку многоязычности?
NectarIn

Replies: 60
Views: 167224

PostForum: Разное :: PHP   Posted: Tue Feb 26, 2008 11:17 pm   Subject: Сайт на двух (или более) языках. Как лучше и проще сделать поддержку многоязычности?
Я, может быть, выскажусь резко, но мне кажется, что вот такие решения:
echo func('Русский текст', 'English text');
echo ($lang == 'ru'?'Русский текст':'English text');
...и тому подобные - это не решения. Это всё тот же switch, только зачем-то обёрнутый во что-то. Даже для двух фиксированных языков остаются вопросы - если сообщение достаточно велико, мы вынуждены писать фактически два варианта. Чем больше текст - тем глупее будет выглядеть код. И потом, никто и никогда не станет утверждать на 100% процентов, что самый простой сайт с минимальной функциональностью потом не попросит третьего языка, больших текстов и т.п.
Gettext на первый взгляд неплох, но лично у меня есть вопросы. Во-первых, что делать, если тот или иной перевод сообщения приходится менять, причём это будет "основной" перевод - используемый в скриптах? Придётся менять его и в базе gettext и во всех файлах, где это сообщение выводится. И в любом случае остаётся открытым вопрос с большими текстами. ...
  Topic: Сброс конструктора
NectarIn

Replies: 3
Views: 3261

PostForum: Разное :: PHP   Posted: Mon Jan 07, 2008 2:40 pm   Subject: Сброс конструктора
Спасибо большое! Как-то не пришло в голову, что внутри класса можно вызвать приватный конструктор...
  Topic: Сброс конструктора
NectarIn

Replies: 3
Views: 3261

PostForum: Разное :: PHP   Posted: Mon Jan 07, 2008 2:06 pm   Subject: Сброс конструктора
Здравствуйте. Вопрос таков: как запретить создание второго объекта класса?.. Логика подсказывает, что в конструкторе должна быть проверка на существование первого экземпляра и "сброс" в случае успеха. Как этот сброс сделать? =)
  Topic: Что есть "->" и "=>"?
NectarIn

Replies: 6
Views: 5525

PostForum: Разное :: PHP   Posted: Mon Sep 10, 2007 11:38 pm   Subject: Что есть "->" и "=>"?
-> обращение к свойствам и методам объекта.
=> разделяет пару ключ-значение при объявлении ассоциативных массивов, и в конструкции foreach... Может, еще где-то, сейчас не вспомню...
 
Page 1 of 1 All times are GMT + 3 Hours
XML