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. После этого сообщения об
ошибках не появляются и хелперы работают, как в предыдущих версиях.