php array_key_exists() vs isset()
Попробуйте выполнить…
$ar = array();
$ar['one'] = NULL;
var_dump(array_key_exists('one',$ar));
var_dump(isset($ar['one']));
PHP CLI - чтение стандартного потока ввода
В продолжение темы о PHP CLI…
Прочитать строку со стандартного потока ввода довольно просто. Для этого необходимо получить дескриптор потока и с помощью стандартных файловых функций прочитать содержимое, вводимое пользователем.
#!/usr/bin/php -q
<?php
if(!defined("STDIN")) {
define("STDIN", fopen('php://stdin','r'));
}
echo "Hello from PHP CLI! Type your name:\n";
$strName = fgets(STDIN);
echo 'Hello, ' . $strName . "\n";
В этом фрагменте кода скрипт [...]
PHP CLI
Что такое PHP CLI? PHP CLI является сокращением для PHP Command Line Interface. Название подразумевает использование PHP в системной командной оболочке. Иными словами это способ запуска PHP скриптов не через web-сервер (такие как Apache, Microsoft IIS и другие).
Функция system() и php cgi
Хочу вызвать php скрипт с перенаправлением стандартного вывода и в фоновом режиме:
system('/usr/local/bin/php somescript.php > /dev/null &');
Не работает, а если написать
system('/usr/local/bin/php somescript.php');
то работает
Php работает на сервере в режиме CGI.
symfony:propel troubles
Почти 4 часа утра, а мой код работает не совсем как надо.
[cc lang="sql"]
SELECT some.ID, some.COLUMN1, some.COLUMN2 FROM some WHERE some.COLUMN2=2 ORDER BY UPPER(some.ID) DESC LIMIT 20
[/cc]
В итоге some.ID превращался в строку и сортировалось криво. Пришлось залезть в самые дебри. В итоге нашел в файле /usr/share/php5/symfony11/lib/plugins/sfPropelPlugin/lib/vendor/propel-generator/classes/propel/engine/database/model/PropelTypes.php весьма сомнительную строчку:
[cc lang="php"]
const BIGINT_NATIVE_TYPE = “string”;
[/cc]
После замены “string” на [...]
Узнаем Alexa Rank программным способом на php
Наверное каждый, кто хоть раз сталкивался с программным определением Alexa Rank понимает, что сделать это весьма не просто.
Все дело в том, что на сайте используется весьма хитрая система от всяческих crawler’ов - используются левые span тэги, которые не видны из браузера, зато добавляют кучу мусора в html код и головной боли программисту, который решил написать [...]
Качаем бесплатные выпуски Linux Format 2005-2007
[cc lang="php"]
#!/usr/bin/env php
[/cc]
Блокируем скрипт от повторного запуска
В своей повседневной работе мне часто приходится иметь дело с написанием php-скриптов, которые будут запускаться посредством cron. Некоторые скрипты выполняют свою работу моментально, некоторые могут работать несколько минут и даже часов. В связи с этим постоянно нужно думать о том, чтобы не порождались параллельные процессы одного и того же скрипта. Раньше я применял следующую тактику: [...]
Symfony setFlash() не работает (
Какие-то аномалии, солнечное затмение уже далеко позади, а у меня Symfony ругается:
Call to undefined method accountsActions::setFlash…
Не нравится мне все это, в v1.0 таких недоразумений не случалось.
UPD: создал топик на форуме symfony-project
UPD2: все работает, в Symfony v1.1 методы для работы с Flash переменными, перенесены в объект sfUser, таким образом вместо старого $this->setFlash($flashName, $flashValue); необходимо использовать $this->getUser()->setFlash($flashName, [...]
Хелперы форм в Symfony v1.1
Вчера столкнулся со странным поведением фреймворка Symfony v1.1 при попытке использования хелперов форм. Например
на вызов form_tag() Symfony ругался ошибкой, что такая функция не определена. Немного погуглив, нашел ответ:
необходимо в /apps/ваше_приложение/config/settings.yml опцию compat_10 выставить в on. После этого сообщения об
ошибках не появляются и хелперы работают, как в предыдущих версиях.



