Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

09.06.2008, 12:00
|
|
Banned
Регистрация: 21.06.2007
Сообщений: 87
Провел на форуме: 543344
Репутация:
43
|
|
помогите пожалуйста.
При переходе с сайта на форум,по профилю...выходит ошибка
PHP код:
Fatal error: Class 'tree' not found in **************************** on line 2
как это исправить? в этом файле (***) 2 строчка такова помогите пожалуйста,заранее спасибо.
|
|
|

09.06.2008, 12:06
|
|
Участник форума
Регистрация: 26.02.2007
Сообщений: 259
Провел на форуме: 302951
Репутация:
67
|
|
должен быть файл в котором задается этот класс, он должен поидее сверху подключатся к твоему файлу, посмари что нить типа require_once() или include() и внутри одной из этих функций путь к файлу, тебе его нада найти потом посмотрим
|
|
|

09.06.2008, 12:17
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Сообщение от halkfild
тебе нужно конкретнее писать регулярку..
твое
собирает абсолютно всё.. посмотри хтмл и ты увидишь, что там много мусора
нужно конкретнее писать регулярку.
как вариант:
PHP код:
<?php
$str=' <div class="abc">
Какой-то блок текста 1
</div>
<div class="abc">
Какой-то блок текста 2
</div>
<div class="abc">
Какой-то блок текста 3
</div>
<div class="abc">
Какой-то блок текста 4
</div> ';
preg_match_all('/<div class="abc">\s\n(([^<]+))<\/div>/si', $str, $result);
$result = $result[1];
echo '<pre>';
print_r($result);
echo '</pre>';
?>
даст результат
Согласен. Только проблема в том что как ты наверно понял, что у меня между тегами <div></div> не только просто блоки текста, там куча других тегов, таблиц. И всё это нужно отпарсить и потом работать уже с каждым в отдельности
Ну банальный пример:
PHP код:
$str = '<u>
<table border="1"><tr>
<td></td>
<div class="my_class1">Текст1</div>
<td>Другой какой-то текст1</td>
</tr></table>
<img src="img.gif" id="img1" />
<div id="some_id1">Ещё текст1</div>
<a href="1.php">Какая-то там ссылка1</a>
<div id="my_id1">Тоже текст1</div>
</u>
<u>
<table border="1"><tr>
<td></td>
<div class="my_class2">Текст2</div>
<td>Другой какой-то текст2</td>
</tr></table>
<img src="img.gif" id="img2" />
<div id="some_id2">Ещё текст2</div>
<a href="2.php">Какая-то там ссылка2</a>
<div id="my_id2">Тоже текст2</div>
</u>';
preg_match_all('/<u>(.+)<\/u>/si', $str, $a);
echo '<pre>';
print_r($a);
echo '</pre>';
И на выходе должно быть что-то вроде:
PHP код:
Array(
[0]=>my_class1 Текст1 Другой какой-то текст1 img1 some_id1 Ещё текст1 1.php Какая-то там ссылка1 my_id1 Тоже текст1,
[1]=>my_class2 Текст2 Другой какой-то текст2 img2 some_id2 Ещё текст2 2.php Какая-то там ссылка2 my_id2 Тоже текст2,
..etc..
)
Вот в таком духе. Поэтому я и использовал (.+) чтобы получить всю эту ересь в отдельный массив и потом уже с каждым массивом работать, то есть мне отпарсить нужно не только текст, но и все id-шники и классы дивов, ссылок и изображений, ссылки на сами изображения и т.д. вот. Ну проще говоря name, id, классы, src, onclick() и конечно сам текст...
|
|
|

09.06.2008, 15:47
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
Сообщение от .:EnoT:.
Есть предположим такая страница:
PHP код:
<div class="abc">
Какой-то блок текста 1
</div>
<div class="abc">
Какой-то блок текста 2
</div>
<div class="abc">
Какой-то блок текста 3
</div>
<div class="abc">
Какой-то блок текста 4
</div>
Регуляркой парсю всё это безобразие:
Да, я наконец-то нашёл время почитать про регулярки
PHP код:
preg_match("/<div class=\"abc\">(.+)<\/div>/is",$str,$a);
print_r($a);
Получаю:
PHP код:
Array (
[0] =>
Какой-то блок текста 1
Какой-то блок текста 2
Какой-то блок текста 3
Какой-то блок текста 4
[1] =>
Какой-то блок текста 1
Какой-то блок текста 2
Какой-то блок текста 3
Какой-то блок текста 4 )
Подставлял U, но находит только первое вхождение)
А теперь вопрос:
Как сделать регулярку (или другими способами), чтобы каждый "Какой-то блок текста" был в отдельном массиве, т.е:
PHP код:
Array (
[0] =>Какой-то блок текста 1,
[1] =>Какой-то блок текста 2,
[2] =>Какой-то блок текста 3,
[3] =>Какой-то блок текста 4
...etc...)
Пробовал с preg_match_all(), тоже не помогло.
Сильно в твою проблему не вникал, но понял следующее: он у тебя все загоняет в один элемент, т.к. по умолчанию регулярки "жадные", т.е. под твою регулярку попадает все, от первогодива класса abc до последнего закрывающего тег див. Поэтому тебе необходимо использовать так называемый модификатор "жадности" (U).
Т.е. нечто вроде:
PHP код:
preg_match_all("/<div class=\"abc\">(.+)<\/div>/isU",$str,$a);
В первом элементе массива $a будет нужный тебе массив 
|
|
|

09.06.2008, 17:29
|
|
Участник форума
Регистрация: 26.02.2007
Сообщений: 259
Провел на форуме: 302951
Репутация:
67
|
|
у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?
я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(
Последний раз редактировалось Корвин; 09.06.2008 в 17:41..
|
|
|

09.06.2008, 18:58
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Люди, подскажите почему сессия не стартует?
Тупо пишу:
Выдает ошибку:
PHP код:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\www\sites\rfo\public.php:7) in...
|
|
|

09.06.2008, 19:00
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Смотри public.php строку 7 - там какая-то инструкция уже начала вывод. Сессии посылаются в хидерах, поэтому вызов session_start() должен предшествовать началу вывода любой информации.
|
|
|

09.06.2008, 19:10
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
На вашем новичковском это значит что строку session_start(); надо поместить самой первой строчкой в файле (после <?php)
|
|
|

09.06.2008, 19:38
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Да, я уже понял, стартанул ниже тегов <html>... спасибо!
|
|
|

09.06.2008, 19:41
|
|
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме: 7875940
Репутация:
2362
|
|
Сообщение от Корвин
у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?
я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(
используй крон.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|