Доброго времени суток. Подскажите как правильно делается. Сейчас у меня так: PHP: $producer.="<A HREF=\"$G_site_url/catalog/$current_groups_id/$namep.htm ><IMG SRC=$img[name] BORDER=0 ALT=$cap $row[name] align=absmiddle></a> <A HREF=\"$G_site_url/catalog/$current_groups_id/$namep.htm\" TITLE=\"$cap $row[name]\">$row[name] ($items_in_group[$current_groups_id][$row[id]])</A>".$table[end_td]; Переменные прописываются. Хочу сделать чтобы шаблон этой строки подгружался из файла шаблона. Т.е. через preg_match получаю переменную допустим $string равную HTML: "<A HREF=\"$G_site_url/catalog/$current_groups_id/$namep.htm ><IMG SRC=$img[name] BORDER=0 ALT=$cap $row[name] align=absmiddle></a> <A HREF=\"$G_site_url/catalog/$current_groups_id/$namep.htm\" TITLE=\"$cap $row[name]\">$row[name] ($items_in_group[$current_groups_id][$row[id]])</A>".$table[end_td]; соответственно она строковая и если я пишу PHP: $producer.=$string переменные в неё не вписываются. Раньше в таких случаях пользовал ereg_replace с отделением переменных символами. Мне кажется это не совсем правильно. Можно как-то по другому?
Что ты хочешь сделать? из PHP: <?php $str='<A HREF=\'$namep.htm\' ><IMG SRC=\'$img[name]\'></a>'; $namep="mysite"; $img["name"]="pic.png"; получить PHP: <?php $prod="<A HREF='mysite.htm' ><IMG SRC='pic.png'></a>"; ?
наверное так. PHP: $img["name"]="pic.png"; $namep="mysite"; $str="<A HREF='$namep.htm'><IMG SRC='$img[name]'></a>";
это называется шаблон, ня PHP: <? function Template($__tplname,$vars,$extr=true){ if(is_array($vars) && $extr) extract($vars,EXTR_SKIP); if(!is_file($__tplname)) trigger_error("Шаблон '{$__tplname}' не найден",E_USER_ERROR); ob_start(); include $__tplname; $res=ob_get_contents(); ob_end_clean(); return $res; } /* using */ $result=Template("tpl/test.tpl",array("href"=>"http://google.com","name"=>"Google Link")); print $result; /* printed: <a href="http://google.com">Google Link</a> */ /* in file tpl/test.tpl */ <a href="<?=$href;?>"><?=$name;?></a> ?>
Как по умному - не знаю. Первое что приходит в голову - использовать eval. Но тогда надо очень хорошо следить за переменными и файлами. Если это действительно шаблон страницы, то стоит поковыряться в примере выше.
Непонял! Замену то как произвести? Ну это получается просто вставка PHP, а так не хотелось. Или я не правильно понял?
eval попробую обязательно! Поскольку новичёк, никак не мог вспомнить как называется, хотя помню что применял. Насчет примера выше я уже написал, не хочется php в строку вставлять. Или же там какая хитрость, которую я проглядел?
А какая разница вот так: Код (Text): <A HREF=\'$namep.htm\' ><IMG SRC=\'$img[name]\'></a> или вот так: Код (Text): <a href="<?=$href;?>"><?=$name;?></a> Весь вопрос в организации. Если можно сначала объявить переменные, а потом подключить файл, то банальный include или шаблон проще и логичнее. Шаблон более функционален. Его можно будет расширить при необходимости. Так будет понятнее при сопровождении программы. Насколько я понимаю при этом подходе придется разбираться с файлом шаблонов, делить его на несколько файлов. Если же нельзя разбить файл или исходные строки приходят всегда раньше переменных для вставки, то тогда можно попробовать eval. Правда там надо немного с экранированием заморочиться.
А чем плохо вот так? PHP: <?php $G_site_url='mysite.ru'; $current_groups_id='245'; $namep='volga'; $img[name]='img.gif'; $t_string="<A HREF=\"{$G_site_url}/catalog/{$current_groups_id}/{$namep}.htm\" ><IMG SRC=\"{$img['name']}\"</a>"; echo $t_string; ?> На выходе получается то что мне нужно: HTML: <A HREF="mysite.ru/catalog/245/volga.htm" ><IMG SRC="img.gif"</a> Лично я не знал про такой вывод. Или в нем что-то плохо?
Это вообще самый логичный вариант. Просто я понял что строки беруться из некоего файла, а не создаются в коде.
Вы правы! Нужно именно из файла и тогда этот прием не работает. Сделал через eval. Спасибо за подсказку! Единственно подскажите что значит вот эта строчка: PHP: <? eval ("\$str = \"$str\";"); ?> Просто скопировал с примера.
Без аргументов пустой треп! Если считаешь себя умным, возьми и аргументированно объясни. А так не е... мозги!
Vovchik69 Один даун хочет пистолет в жопу. Второй умник дает рекомендации, как получше его туда засунуть. Так доступно? Тебе дали единственное нормальное и полностью работоспособное решение в твоем случае А ты прощелкал клювом и хочешь каких-то аргументов. Так вот... они бесполезны. Такие как ты аргументов не понимают. За 2 года на форуме и быть полным нулем - надо уметь.
Я его не прощелкал! Я написал почему мне оно не нравится! За то я смотрю ты за 4 месяца ох.. гуру стал. Я написал, аргументируй чем хуже eval, а потом махай своей мушкой! Так на будущее, базар фильтруй! Что до интернета недавно добрался.
А я тебе говорил - спили мушку. Но, похоже, со спиленной мушкой тебе не нравится. Зато мушка побольше - нравится. Бывают и такие товарищи. И смысл? Аргументировать можно, тому кто знает примерно столько же как ты. А школьников можно только учить. К тому же, такие как ты, аргументы в любом случае не читают. Им даже думать сложно - В каком из двух кусков кода, нет вставки на PHP? В обоих есть вставка? Печаль то какая. Это кем надо быть, чтобы этого не увидеть сразу? Но смело рассуждать нравится/ненравится. Конечно недавно, ровно 11 лет назад. Вот только школоты с "базаром" тогда было много меньше. Вобщем, чудо-школьное в гугл быстрыми скачками по вопросу eval и шаблонизатор. Чтобы не задавал на будущее тупых вопросом, да еще с матами. О том что узнаешь, доложишь тут.
Дальнейшее обсуждение считаю бессмысленным. Про eval так ничего и не сказано. Хоть один в студию! А откуда ты знаешь кто я есть! И почему ты решил что можешь мне ТЫКАТЬ? На свой базар смотри! Я твою трепню посмотрел 90% полный флуд! А тебе походу побольше сообщений заработать надо ПОУЧАТЕЛЬ ты наш! Гадость! А то что ты додумал в троеточиях мат, твоя личная проблема! КАЖДЫЙ ДУМАЕТ В МЕРУ СВОЕЙ РАСПУЩЕННОСТИ! А вот револьвер в одно место походу тебя возбуждает, мушку тогда не спиливай для себя. Печаль в том что во втором случае можешь писать любую байду на PHP и она будет исполняемая! Ты не заметил разницы ПОУЧАТЕЛЬ?
Потому что нормальный человек осознает меру своего незнания и слушает что ему говорят те кто знает. Но поскольку ты никто, и зовут тебя никак. То ты предпочитаешь делать глупости и качать права. А в случае с eval это будет не так? бог ты мой откуда столько тупости в одном человеке? Скажи свой адрес, я вышлю тебе презервативы, чтобы идиоты не размножались. Специально для даунов не умеющих пользоваться поиском и читать
я пад стулом Vovchik69 дурень, это одно и тоже. в евале тоже можно писать "любую байду". поучитесь у поучателя
SimpliestВот Mr.M.I.T.аргументировал! А ты языком чешешь! У меня эта строка тащится из файла! PHP не подключишь. А в твоем варианте нет проблем. Короче, моя твоя не понимает! Я работаю! Мне некогда просто хрень на клаве набирать, а ты бездельник? Нечего толкового написать так и не написал! 24-сообщения в день(причем бестолковых) заняться нечем? Займись пистолетом и своей попой!
Терпеть не могу дохрена умных. Хотя в ссылках която польза была. P.S.Одеяло стесняешся скинуть , Стыдно?
так блин. те два не последних человека говорят что это одно и тоже. хоть файла хоть не файла, что ещё нужно? хочешь подробнее иди смотреть сорсы php ядра