yager
12-07-2006, 12:33
Всем привет.
Очень нужна помощь.
Сам в PHP не очень силен, недавно стал его использовать, а времени искать дополнительную инфу нет.
Поэтому, если вопрос тупой, не обессутьте.
Задача такая.
Сайт - on-line версия печатного издания (газета)
Требуется сформировать рубрики, такие как политика, экономика, и т.д.
На сервере все разделено по каталогам, имена которых соответствуют номерам газеты, например (1,2,3 и т.д.)
В каждом из этих номеров есть каталоги "stats" и "block", соответствующие статьям и блоку новостей.
В этих каталогах находятся файлы со статьями и новостями, в мета-тэгах которых указывается рубрика, заголовок, автор и т.д.
Предположим, что юзер, находясь на главной странице, решил посмотреть рубрику "Политика", он кликает на ссылку политика, и дальше уже работает скрипт.
Есть такой кусок кода
1. for($i=0; $i<=sizeof($dir)-1; $i++){ // $dir - это массив содержащий в своих элементах все номера издания
2.
3. $hdl_st=opendir("nums"."/"."$dir[$i]"."/stats");
4. while ($stat_dir=readdir($hdl_st)){
5. if (($stat_dir!=".") && ($stat_dir!="..")) $stat_arr[]=$stat_dir; // получили массив, в элементах которого статьи
6. }
7. closedir($hdl_st);
8. rsort($stat_arr);
9. foreach($stat_arr as $val_st){ // ...а теперь у каждой статьи
10. $meta_st=get_meta_tags("nums/"."$dir[$i]"."/stats/"."$val_st"); // берем мета-тэги
11. $rubr=$meta_st[rubr_id];
12. if ($rubr==$rubrika){ // сравниваем мета-тэг в статье с рубрикой, полученной при попадании на страницу из главной
13. echo "Номер газеты - $dir[$i]; Рубрика - $meta_st[rubr_name]; Тип - статья; Заголовок - $meta_st[zagol];<br>";
14. echo "<a href=st.php?paper_num=$dir[$i]&stat_num=$val_st>Перейти</a><br><br>";
15. }
16. }
17.
18. $hdl_bl=opendir("nums/"."$dir[$i]"."/block");
19.
20.
21. while ($block_dir=readdir($hdl_bl)){
22. if (($block_dir!=".") && ($block_dir!="..")) $block_arr[]=$block_dir; // получили массив,
// в элементах которого файлы с новостями, далее по аналогии со статьями
23. }
24. closedir($hdl_bl);
25. rsort($block_arr);
26. foreach($block_arr as $val_bl){
27. $meta_bl=get_meta_tags("nums/"."$dir[$i]"."/block/"."$val_bl");
28. if ($meta_bl[rubr_id]==$rubrika){
29. echo "Номер газеты - $dir[$i]; Рубрика - $meta_bl[rubr_name]; Тип - Блок новостей; Заголовок - $meta_bl[zagol];<br>";
30. echo "<a href=bl.php?paper_num=$dir[$i]&block_num=$val_bl>Перейти</a><br><br>";
31. }
32. }
33. }
В принципе это работает, что странно, так как вместе с результатами выдается куча ошибок, вернее одна, но по циклу..., и еще одна - по результату.
Во-первых, при запуске скрипта выдается такая ошибка
<b>Notice: Use of undefined constant rubr_id - assumed 'rubr_id' in s:\home\server\www\rubr.php on line 24</b>
имеются ввиду строки 11 и 28 вышеприведенного скрипта <b>(if ($meta_bl[rubr_id]==$rubrika){)</b>
Во-вторых, вывод на страницу происходит таким макаром
Номер газеты - 58; Рубрика - Семья и дети; Тип - статья; Заголовок - Семья бывает разная; Перейти
Номер газеты - 58; Рубрика - Семья и дети; Тип - статья; Заголовок - Напиши мне, мама!; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Детские сердца; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Детские сердца; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Обреченные!; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Обреченные!; Перейти
То есть, я так понимаю, мне нужно обнулить массивы $stat_arr и $block_arr, к примеру во второй строчке, но, честно говоря, я не знаю, как это сделать.
PS. Простите за такой развернутый эпос...
Очень нужна помощь.
Сам в PHP не очень силен, недавно стал его использовать, а времени искать дополнительную инфу нет.
Поэтому, если вопрос тупой, не обессутьте.
Задача такая.
Сайт - on-line версия печатного издания (газета)
Требуется сформировать рубрики, такие как политика, экономика, и т.д.
На сервере все разделено по каталогам, имена которых соответствуют номерам газеты, например (1,2,3 и т.д.)
В каждом из этих номеров есть каталоги "stats" и "block", соответствующие статьям и блоку новостей.
В этих каталогах находятся файлы со статьями и новостями, в мета-тэгах которых указывается рубрика, заголовок, автор и т.д.
Предположим, что юзер, находясь на главной странице, решил посмотреть рубрику "Политика", он кликает на ссылку политика, и дальше уже работает скрипт.
Есть такой кусок кода
1. for($i=0; $i<=sizeof($dir)-1; $i++){ // $dir - это массив содержащий в своих элементах все номера издания
2.
3. $hdl_st=opendir("nums"."/"."$dir[$i]"."/stats");
4. while ($stat_dir=readdir($hdl_st)){
5. if (($stat_dir!=".") && ($stat_dir!="..")) $stat_arr[]=$stat_dir; // получили массив, в элементах которого статьи
6. }
7. closedir($hdl_st);
8. rsort($stat_arr);
9. foreach($stat_arr as $val_st){ // ...а теперь у каждой статьи
10. $meta_st=get_meta_tags("nums/"."$dir[$i]"."/stats/"."$val_st"); // берем мета-тэги
11. $rubr=$meta_st[rubr_id];
12. if ($rubr==$rubrika){ // сравниваем мета-тэг в статье с рубрикой, полученной при попадании на страницу из главной
13. echo "Номер газеты - $dir[$i]; Рубрика - $meta_st[rubr_name]; Тип - статья; Заголовок - $meta_st[zagol];<br>";
14. echo "<a href=st.php?paper_num=$dir[$i]&stat_num=$val_st>Перейти</a><br><br>";
15. }
16. }
17.
18. $hdl_bl=opendir("nums/"."$dir[$i]"."/block");
19.
20.
21. while ($block_dir=readdir($hdl_bl)){
22. if (($block_dir!=".") && ($block_dir!="..")) $block_arr[]=$block_dir; // получили массив,
// в элементах которого файлы с новостями, далее по аналогии со статьями
23. }
24. closedir($hdl_bl);
25. rsort($block_arr);
26. foreach($block_arr as $val_bl){
27. $meta_bl=get_meta_tags("nums/"."$dir[$i]"."/block/"."$val_bl");
28. if ($meta_bl[rubr_id]==$rubrika){
29. echo "Номер газеты - $dir[$i]; Рубрика - $meta_bl[rubr_name]; Тип - Блок новостей; Заголовок - $meta_bl[zagol];<br>";
30. echo "<a href=bl.php?paper_num=$dir[$i]&block_num=$val_bl>Перейти</a><br><br>";
31. }
32. }
33. }
В принципе это работает, что странно, так как вместе с результатами выдается куча ошибок, вернее одна, но по циклу..., и еще одна - по результату.
Во-первых, при запуске скрипта выдается такая ошибка
<b>Notice: Use of undefined constant rubr_id - assumed 'rubr_id' in s:\home\server\www\rubr.php on line 24</b>
имеются ввиду строки 11 и 28 вышеприведенного скрипта <b>(if ($meta_bl[rubr_id]==$rubrika){)</b>
Во-вторых, вывод на страницу происходит таким макаром
Номер газеты - 58; Рубрика - Семья и дети; Тип - статья; Заголовок - Семья бывает разная; Перейти
Номер газеты - 58; Рубрика - Семья и дети; Тип - статья; Заголовок - Напиши мне, мама!; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Детские сердца; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Детские сердца; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Обреченные!; Перейти
Номер газеты - 57; Рубрика - Семья и дети; Тип - статья; Заголовок - Обреченные!; Перейти
То есть, я так понимаю, мне нужно обнулить массивы $stat_arr и $block_arr, к примеру во второй строчке, но, честно говоря, я не знаю, как это сделать.
PS. Простите за такой развернутый эпос...