Ошибка PHP 5.3.3 или плохая проверка preg_match?

<?php
$query = 'q=Riha47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a4744444444444444444444444444444444444444444444444na&start-index=60&max-results=20';
$pattern = "/^(?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\];\/?:@&=+$,])*$/";

if (preg_match($pattern, $query))
    echo 'true';
else
    echo 'false';

Скрипт ничего не выводит... Он предлагает скачать php файл 0 байт.. Мне нужно это исправить, потому что, вероятно, это все еще ошибка в Zend_Gdata! Извините за плохой английский.

ИЗМЕНИТЬ:

У вас установлена ​​версия php 5.3.3? Проблема исчезнет, ​​если вы добавите «U» в конце выражения. Какого хрена?


person Isis    schedule 28.11.2010    source источник
comment
Это печатает true, когда я запускаю его.   -  person John Kugelman    schedule 29.11.2010