Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция file_get_contents
Форумы портала PHP.SU » » Если скрипт не работает » Функция file_get_contents

Страниц (1): [1]
 

1. kazmikro - 24 Мая, 2011 - 21:56:51 - перейти к сообщению
Мммм : Как исправить ошибку

PHP:
скопировать код в буфер обмена
  1.  
  2. [b]Index.php[/b]
  3.  
  4. $news_kz = file_get_contents("mods/news.php");
  5.  
  6. $args['news_kz'] = $news_kz;
  7.  
  8. function tpl_parser($tpl,$args) {
  9.    
  10.     $tpl = file_get_contents($tpl);
  11.  
  12.      if (count($args) > 0) {
  13.     foreach ($args as $k => $v) $tpl = str_replace("{".$k."}",$v,$tpl);
  14.    
  15.     }
  16.   return $tpl;
  17.   }
  18.  
  19. echo tpl_parser($tpl,$args);
  20.  
  21.  


Вот собственно сам файл news.php

PHP:
скопировать код в буфер обмена
  1.  
  2. include ("../system/config.php");
  3.  
  4. $result = mysql_query ("SELECT * FROM news WHERE cat='1' LIMIT 5",$db);
  5. $myrow = mysql_fetch_array($result);
  6.  
  7. do {
  8.    
  9.     PRINTF ("
  10.    <a href='/news.php?id=%s'>%s</a><br>
  11.    ",$myrow['id'],$myrow['title']);
  12.    
  13. }
  14.  
  15. WHILE ($myrow = mysql_fetch_array($result));
  16.  



Я пытался реплейснуть файл с циклом в виде {news_kz} Результат такой

"
%s
",$myrow['id'],$myrow['title']); } WHILE ($myrow = mysql_fetch_array($result)); ?>
"

и тут возникает вопрос ? как засунуть файл news.php в {news_kz} чтоб не было такой ошибки
2. OrmaJever - 24 Мая, 2011 - 22:08:38 - перейти к сообщению
если чесн то написано что попало.
kazmikro пишет:
$news_kz = file_get_contents("mods/news.php");

здесь вы тупо пытаетесь прочитать сам код. И что это даст?
3. kazmikro - 24 Мая, 2011 - 22:20:15 - перейти к сообщению
Ну я только учащийся php , буду рад , исправь меня ! Хорошо
4. OrmaJever - 24 Мая, 2011 - 22:30:05 - перейти к сообщению
я не нял на что вам нужно заменить {news_kz} ?
Догадываюсь что на результат цыкла?
PHP:
скопировать код в буфер обмена
  1.     PRINTF ("
  2.    <a href='/news.php?id=%s'>%s</a><br>
  3.    ",$myrow['id'],$myrow['title']);
5. kazmikro - 24 Мая, 2011 - 22:33:42 - перейти к сообщению
да
6. OrmaJever - 24 Мая, 2011 - 23:06:03 - перейти к сообщению
поменяйте
PHP:
скопировать код в буфер обмена
  1. $news_kz = file_get_contents("mods/news.php");
  2.  
  3. $args['news_kz'] = $news_kz;
  4.  

на
PHP:
скопировать код в буфер обмена
  1. include "mods/news.php";
  2.  
  3. $args['news_kz'] = $result;


а в news.php замените цыкл на такой
PHP:
скопировать код в буфер обмена
  1. $result = '';
  2. WHILE ($myrow = mysql_fetch_array($result))
  3. {    
  4.    $result .= "<a href='/news.php?id={$myrow['id']}'>{,$myrow['title']}</a><br>";
  5.    
  6. }
  7.  
7. komprenda - 24 Мая, 2011 - 23:39:25 - перейти к сообщению
kazmikro пишет:
Мммм : Как исправить ошибку


Вообщем шаблонизатор основанный на тупо str_replace не канает(со временет тебе понадобятся циклы и условные операторы, и придётся написать свой смарти, либо использовать сторонние). Вообщем используй сам php в качестве шаблонизатора(об этом я уже писал http://forum.php.su/topic.php?fo...87431#1306187431 )
8. kazmikro - 26 Мая, 2011 - 15:26:59 - перейти к сообщению
а в news.php замените цыкл на такой

PHP:
скопировать код в буфер обмена
  1. $result = '';
  2. WHILE ($myrow = mysql_fetch_array($result))
  3. {    
  4.    $result .= "<a href='/news.php?id={$myrow['id']}'>{,$myrow['title']}</a><br>";
  5.    
  6. }


Не могу разобраться
(Добавление)
там какая то ошибка в синтаксисе
(Добавление)
всё нашёл
(Добавление)
Пожалуйста обьясни вот это

PHP:
скопировать код в буфер обмена
  1.  
  2. $result = '';
  3. WHILE ($myrow = mysql_fetch_array($result))
  4. {    
  5.    $result .= "<a href='/news.php?id={$myrow['id']}'>{,$myrow['title']}</a><br>";
  6.    
  7. }
  8.  


не могу понять зачем ты в самом начале присваеваешь пустоту переменной $result ? и почему стоит точка перед знаком =
9. OrmaJever - 26 Мая, 2011 - 15:46:33 - перейти к сообщению
kazmikro пишет:
е могу понять зачем ты в самом начале присваеваешь пустоту переменной $result

Без этой строки будет ошибка о несуществующей переменой
kazmikro пишет:
и почему стоит точка перед знаком =

http://php.su/learnphp/operators/?string читать, читать и ещё раз читать
10. kazmikro - 26 Мая, 2011 - 16:44:05 - перейти к сообщению
Понятно разобрался )))

 

Powered by ExBB FM 1.0 RC1