- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте форумчане!
Может сможет кто-то помочь? Вопрос похожий.
У меня при настройке сайта возникла ошибка в коде по php. Сам от php далекий человек. Смогли бы вы помочь мне решить этот вопрос, как его необходимо записать?
Высвечивает вот такое предупреждение:
Warning: preg_replace_callback(): Requires argument 2, 's1('1').__fixx('3','automatic-fdb08001w0').'4'/', to be a valid callback in /home/u181271132/public_html/_admin/node.html.php on line 36
Вот сам кусок этого кода.
function s1($A){
return str_replace("\\\"", "\"", $A);
}
function fixx($A,$H){
return preg_replace_callback("/(<[a-z][^<>]*?(?:src|href))=(['\"])?(.*?)(?(2)\\2|([\s>]))/i", "s1('\\1').__fixx('\\3','{$H}').'\\4'/", $A);
}
В конфигурации сервера установлена версия php-5,5
ошибка говорит что 2 аргумент не правильно указан, вот описание функции http://php.net/manual/ru/function.preg-replace-callback.php или используйте просто preg_replace
Это хорошо, и благодарю за отзыв. Писал выше в php вообще не смыслю и соответственно мне это ни о чем не говорит.
В данной ситуации просьба переписать код так как он должен быть написан по правилам php и что бы он работал без высвечивания соответствующей ошибки.
---------- Добавлено 22.08.2016 в 09:32 ----------
или используйте просто preg_replace
PARFUMER_, если в пхп не смыслите, то рано вам нуллить скрипты, юзайте скрипт как есть.
PARFUMER_, если в пхп не смыслите, то рано вам нуллить скрипты, юзайте скрипт как есть.
Так CMS готовую и юзаю, а выкидывает ошибку, которую необходимо убрать. Вот и спрашиваю помощи. как необходимо записать эту строку правильно и в рабочем виде.
Вам нужно сделать еще одну функцию и вызывать ее в качеств callback
и в ней организовать то что сделано у вас строкой "s1('\\1').__fixx('\\3','{$H}').'\\4'/"
вот так должно работать
Вам нужно сделать еще одну функцию и вызывать ее в качеств callback
и в ней организовать то что сделано у вас строкой "s1('\\1').__fixx('\\3','{$H}').'\\4'/"
вот так должно работать
Благодарю за содействие!
Вот этот код, что написан Вами здесь, мне скопировать и вставить вместо 36 линии, что вызывала ошибку и должно работать. Правильно понял?
PARFUMER_, у вас во втором параметре "s1('\\1').__fixx('\\3','{$H}').'\\4'/" видна функция __fixx()
В документации preg_replace_callback сказано, что 2-м должна идти callback-функция.
А у вас, помимо функции, еще "обрамление" в виде s1('\\1')
И wanick вам показал пример такой фунции, которая все "обрамление" внутри содержит.
p.s. грубо говоря
nikonlay, Вы смогли бы исправить код в этом файле если его Вам вышлю его полностью.
В php полный ноль. В CMS высвечивает эту ошибку, вот скопировал и попросил исправить.
И кусок этого кода, а как его править, я понятия не имею.
Чем вызвана необходимость смены версии ПХП? Какая была, а какая стала?
Может всеже лучше вернуться обратно, а то не исключено что у Вас еще где то не вылезут сюрпризы.
Потом найти того, кто бы смог проверить код на несовместимости, изменить под новую версию ПХП а потом и саму версию ПХП.
PARFUMER_, ну вы попробуйте сначала заметить ваш кусок кода:
function s1($A){
return str_replace("\\\"", "\"", $A);
}
function fixx($A,$H){
return preg_replace_callback("/(<[a-z][^<>]*?(?:src|href))=(['\"])?(.*?)(?(2)\\2|([\s>]))/i", "s1('\\1').__fixx('\\3','{$H}').'\\4'/", $A);
}
на
function s1($A){
return str_replace("\\\"", "\"", $A);
}
function fixx($A,$H){
return preg_replace_callback(
'/(<[a-z][^<>]*?(?:src|href))=(['\"])?(.*?)(?(2)\\2|([\s>]))/i',
function($matches){
return s1($matches[1]).__fixx($matches[3],$H).$matches[4].'/';
}, $A);
}
Как wanick пишет, должно работать