Да по 3 мальчик с копьем, а по второму я нашел, тоже ровно одну книжку из относительно свежих (2008). Вообще вчера повозился с ним (python), сначала не вежал как получить результат в окне браузера. Потом потом понял (cgi). Прочитал что есть еще wsgi и он вроде как самый правильный вариант, но так и не получилось его настроить (на том же Денвере).
Вообще, что то мне не очень он нравится как средство для создания сайтов (хотя рано судить наверное). В PHP удобнее по моему. В python как я понял если берешься за создание сайта (web), то нужно брать какой не то framework для этого, а так чтобы самому пописать это хлопотно. Нету всяких там $_POST и $_GET.
Хотя конечно тут возможностей наверное больше: многопоточность, тьма-тьмущая различный модулей, можно делать приложения под десктоп (хотя мне это пока не требуется).
Вообщем буду потихонечку копать. Эх... и надо учить английский.
Хм.. Мне бы лучше конечно с Денвером :) А вообще на каком обычно веб сервер запускают сайты (скрипты) на Python
И еще. Какой IDE посоветуете.
Вот на php.net в коментах есть вариант с созданием временного файла.
function mLock($lockId, $acquire = null) { static $file_format = '/%s.lock'; static $handlers = array(); if (is_bool($acquire)) { $file = sprintf($file_format, md5($lockId), $lockId); } if ($acquire === FALSE) { if (isset($handlers[$lockId])) { @fclose($handlers[$lockId]); @unlink($file); unset($handlers[$lockId]); }else { trigger_error("Lock '$lockId' is already unlocked", E_USER_WARNING); } } if ($acquire === TRUE) { if (!isset($handlers[$lockId])) { $handler = FALSE; $count = 100; do { if (!file_exists($file) || @unlink($file)) { $handler = @fopen($file, "x"); } if (FALSE === $handler) { sleep(1); }else { $handlers[$lockId] = $handler; } }while (FALSE === $handler && $count-- > 0); }else { trigger_error("Lock '$lockId' is already locked", E_USER_WARNING); } } return isset($handlers[$lockId]); }
Вроде как работает все пишется без как положено. Но меня смущает вот этот момент
if (!file_exists($file) || @unlink($file)) { $handler = @fopen($file, "x"); }
Т.е. выходит, что если файл открылся, то мы его удаляем (TRUE) и идем создавать, а если он не открылся, то опять (TRUE) и идем создавать.
Получается, что если первый процесс создал блокировку, и допустим вышло так, что за ним идет сразу второй процесс, то он снесет эту блокировку и поставит свою, а дальше они оба получат доступ к файлу и писец.
Но вариант вроде нормальный. Я вот подумал, а то если проверять последнее время доступа, и если оно больше скажем (N сек.), то значит какой-то процесс завершился с ошибкой (не снял блокировку).
Ща, попробую. Потом отпишу.
Из доки
flock() не будет работать на NFS и многих других сетевых файловых системах. Обратитесь к документации вашей операционной системы для получения дополнительной информации.
Под NFS подразумевается NTFS, что ли? Я думал это что то другое.
А обойти это можно как не то, заставить работать на винде?
Так я же и пишу что искал 😂
Это отпадает. Он сказал, что у него такого нет.
Ну, то может кто ткнет носом где искать и по какому запросу. Плиз!
recrut добавил 03.06.2010 в 14:17
Большое спасибо сейчас попробую.
Но вот это вы точно уж не найдете. Надо будет самому писать чтобы после оплаты ему открылся доступ.
А аттестат получить не так уж и сложно. Распечатали бланк, заполнили, заверили подпись у натариуса (я помнится за 100 р. заверял) и отправили письмом.
<div id=resultStats>Результатов: примерно 266 000<nobr>
$pattern='#id=resultStats>(.*)<nobr>#U';
Тоже не всегда срабатывает. Но и этот вариант добавил. Видимо есть еще какой-то. Они или каждому страничку с разной структурой дают или под браузер (я отправляю разные данные в USERAGENT)
Нет там старый.
Вот нашел.
http://ru.php.net/distributions/manual/php_manual_ru.chm
самая последняя редакция (дату в первом посте).
Сори ошибся. Хотел сказать, что конект к серверу. Что хранит self::$linkId я понимаю по этому и мне интересно чем такой подход (объявление статичным свойство и методы) лучше, правильней, логичней. Ведь как я уже выше написал при конекте еще к одному серверу и последующем обращение к первому идентификатор соединения перезапишется и конектится придется по новой (или я непонимаю сути). Чем же тогда это выгодно?
Именовонное хранилище функций — кто как я понимаю для того, чтобы можно было создавать и делить функции по области действия (так сказать) и у каждой будет свой префикс DB::name() app::name(). Хм... возможно это удобно. Но вот например встречал классы в которых часть методов статичные а часть нет (так же и свойства), вот по какому признаку решают делать тот или иной метод статичным?
нет я проверял alert(result); и выводит результат фыражения т.е. 32 * number
Но вот в value он не записывается. Там надо наверное какойто другой метод (функцию), но вот какую не знаю.
recrut добавил 14.03.2010 в 13:11
Упс оказывается все работало. Я просто смотрел в исходник (HTML страницки), а он не меняется, вот я и думал что нечерта не работает. Всем спсибо тему можно закрыть. :)