Здравствуйте друзья!
Задача банально и проста. В переменной могут содержаться или цифры не начинающийся с нуля или цифры и знаки без пробелов. Например:
130356634 или
OwHDEK_SPQ4.
такой код работал на тестовом хостинге без проблем с
php 5.6
CODE (
htmlphp):
скопировать код в буфер обмена
<div class="repertuar_a" style="background-image:url('<?=$var" id="<?=$var?>"></div>
<?else:?>
<div class="repertuar_b" id="<?=$var?>"></div>
<?endif;?>
А вот на рабочем не работает.
Но как понял на рабочем стоит
php 5.2, и этот код не отрабатывает это условие.
Пробовал различные условия и
~\d+~ и
/[0-9]/i
Что делать уже я не понимаю. Учитывая что версию
php 5.2 я совсем не знаю. Помогите пожалуйста кто в курсе.
classic1698 пишет:работал на тестовом хостинге без проблем с php 5.6
classic1698 пишет:'|^[1-9][0-9]{5,8}$|
classic1698 пишет:или цифры и знаки без пробелов
Одна из трёх приведённых цитат - ложь.
[quote=Мелкий][/quote]
Лихо завернул.
Если вы чего-то в жизни не видели, это не значит, что этого не существует!
А если серьёзно то все три "цитаты" как Вы выразились не просто правда а истина - могу показать... до сих пор работает на 5.6. )))
Но хотелось бы конструктивного подхода.
Если регулярка |^[1-9][0-9]{5,8}$| совпадает со строкой OwHDEK_SPQ4 - значит сломаны все регулярки основанные на libpcre. А они ооочень много где живут.
Показывайте:
Когда увидите в ответ "int(0)" - проверяйте все 3 приведённые цитаты. Как минимум одна из них - ложь.
Ну разве только вы прямой правкой исходника PHP или runkit'ом или ещё чем зачем-то заменили реализацию preg_match на что-то сломанное. Ну так это не проблема PHP, и уж явно не разница версий. Такая простая регулярка ведёт себя идентично на всех версиях 4.4-7.1 что у меня под рукой. И должна вообще на всех, т.к. регулярка простейшая и такую грубую ошибку libpcre явно заметили бы за два десятка лет.
[quote=Мелкий]Если регулярка |^[1-9][0-9]{5,8}$| совпадает со строкой OwHDEK_SPQ4 - значит сломаны все регулярки основанные на libpcre. А они ооочень много где живут.
Показывайте:
Когда увидите в ответ "int(0)" - проверяйте все 3 приведённые цитаты. Как минимум одна из них - ложь.
Ну разве только вы прямой правкой исходника PHP или runkit'ом или ещё чем зачем-то заменили реализацию preg_match на что-то сломанное. Ну так это не проблема PHP, и уж явно не разница версий. Такая простая регулярка ведёт себя идентично на всех версиях 4.4-7.1 что у меня под рукой. И должна вообще на всех, т.к. регулярка простейшая и такую грубую ошибку libpcre явно заметили бы за два десятка лет.[/quote]
Ну ломать то я точно ничего не ломал. Ума у меня не хватит ))))
А по существу - это старый Битрекс версия 11.
Я таким образом на нём разделяю вывод видео с youtube или vimeo по id.
Может конечно и бестолковое решение но то что пришло быстро в голову.
Так как у vimeo в id входят только цифры то и выбор по ним логичней сделать.
И весь контент, конечно же один и тот же, и на тесте и в рабочем. Почему и подумал про версии.
Но "регулярка" тупо выводит только youtube хотя он второй в условии. Но одна цифирь у него есть. Вот я говорю, что пока в недоумении.
Проверял вместе с кодом id ничего не выводит, только цифры и код (если подозревать, что кусок html выводит - например: <div>код</div> или <p>код</p>).
(Добавление)
[quote=classic1698]
Мелкий пишет:
Когда увидите в ответ "int(0)" - проверяйте все 3 приведённые цитаты. Как минимум одна из них - ложь.