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

22.03.2010, 11:41
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
нужна помощь, я в регулярках не силен, а нужно написать preg_math который возвращал содержимое между (class="news_1">) и (</table>)
написал так
PHP код:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.rap.ru/");
$result = curl_exec($ch);
curl_close($ch);
preg_match("|class=\"news_1\">(.+)</table>|iU",$result,$main);
echo $main[0];
?>
но вместо нескольких строк вылазит вся страница, даже если я комментирую //echo $main[0];
плиз хелп!!1
Последний раз редактировалось PabloPicasso; 22.03.2010 в 11:54..
|
|
|

22.03.2010, 12:41
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Сообщение от PabloPicasso
нужна помощь, я в регулярках не силен, а нужно написать preg_math который возвращал содержимое между (class="news_1">) и (</table>)
написал так
PHP код:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.rap.ru/");
$result = curl_exec($ch);
curl_close($ch);
preg_match("|class=\"news_1\">(.+)</table>|iU",$result,$main);
echo $main[0];
?>
но вместо нескольких строк вылазит вся страница, даже если я комментирую //echo $main[0];
плиз хелп!!1
PHP код:
$content = file_get_contents( "http://www.rap.ru" );
preg_match( '#<table width="100%" cellpadding="0" cellspacing="0" class="news_1">(.+)</tr>[\r\n]</table>#Uis' , $content, $array );
$content = $array[1];
$content = preg_replace( '#src="(.+)" alt#', 'src="http://www.rap.ru\\1" alt', $content);
echo $content;
Работает.
Картинки тоже отображаются
|
|
|

22.03.2010, 11:48
|
|
Участник форума
Регистрация: 31.01.2010
Сообщений: 170
Провел на форуме: 1442841
Репутация:
63
|
|
PHP код:
preg_match('/class="news_1">(.*)<\/table>/iU',$result,$main);
echo $main[1];
|
|
|

22.03.2010, 11:54
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
Сообщение от Compton
PHP код:
preg_match('/class="news_1">(.*)<\/table>/iU',$result,$main);
echo $main[1];
выдало всю страницу, того что нужно нет
http://aka74.ru/engine/news.php
|
|
|

22.03.2010, 12:49
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
PHP код:
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
preg_match ("|<table.+?class=\"news_1\">(.+)</table>|iUs", $result, $main);
echo $main[1];
|
|
|

22.03.2010, 12:54
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
Deathdreams, krypt3r спасиб, оба варианта гуд работают
|
|
|

22.03.2010, 15:28
|
|
Участник форума
Регистрация: 15.07.2009
Сообщений: 200
Провел на форуме: 147171
Репутация:
2
|
|
Из-за чего это может быть?
Делаю запрос к базе:
PHP код:
$nsql='SELECT id, true, bt, bf FROM Q WHERE id='.$mline[2];
$nresult=mysql_query($nsql);
$nline=mysql_fetch_row($nresult);
а в $nline[1] лежит число 1, хотя в базе там лежит 3. И при изменении значения в базе число 1 так и остаётся.
|
|
|

22.03.2010, 17:11
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Сообщение от Qb1024
Из-за чего это может быть?
Делаю запрос к базе:
PHP код:
$nsql='SELECT id, true, bt, bf FROM Q WHERE id='.$mline[2];
$nresult=mysql_query($nsql);
$nline=mysql_fetch_row($nresult);
а в $nline[1] лежит число 1, хотя в базе там лежит 3. И при изменении значения в базе число 1 так и остаётся.
PHP]
$sql = mysql_query('SELECT id, true, bt, bf FROM Q WHERE id='.$mline[2]);
while($ans_row = @mysql_fetch_array($sql)){
// тут действия с данными
}
[/PHP]
|
|
|

22.03.2010, 21:39
|
|
Участник форума
Регистрация: 15.07.2009
Сообщений: 200
Провел на форуме: 147171
Репутация:
2
|
|
Сообщение от Deathdreams
PHP код:
$sql = mysql_query('SELECT id, true, bt, bf FROM Q WHERE id='.$mline[2]);
while($ans_row = @mysql_fetch_array($sql)){
// тут действия с данными
}
Один Х..., то же самое...
И что делать? Мне этот проект дописать вчера нуно было, а тут такая фигня...
Понял, в чём причина: в базе есть поле, называется true, а в пыхе true это константа, всегда равная 1.
И видимо это и влияет на выдачу результата из базы.
Последний раз редактировалось Qb1024; 22.03.2010 в 22:35..
|
|
|

22.03.2010, 22:39
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Сообщение от Qb1024
Один Х..., то же самое...
И что делать? Мне этот проект дописать вчера нуно было, а тут такая фигня...
вообщето в твоём православном коде ты вытаскиваешь количество стоблцов, а не информацию в них.
а я показал пример, как вытащить информацию.
теперь обрабатывай переменную $ans_row
сделай тот де самый print_r($ans_row) для дебага, посмотри что там будет.
пример для дебага:
PHP код:
define("HOST", "localhost"); //хост mysql
define("USER", "user_mysql"); //юзер
define("PASS", "pass_mysql"); // пароль
define("TABLE", "qwertt"); // таблица
function db_query($query){
$db = mysql_connect(HOST, USER, PASS) or die('MySQL False');
mysql_select_db(TABLE, $db) or die('MySQL False');
mysql_query("SET NAMES 'cp1251'") or die('MySQL False');
$msq_sec = @mysql_query($query, $db);
if(!$msq_sec){
die('Неправильный MySQL запрос.');
}
$i=0;
while($ans_row = @mysql_fetch_array($msq_sec)){
$c_keys = array_keys($ans_row);
foreach($c_keys as $num => $value){
//if(!is_numeric($value)){
$array[$i][$value] = $ans_row[$value];
//}
}
$i++;
}
@mysql_close($db);
return $array;
}
$sql = db_query('SELECT id, true, bt, bf FROM Q WHERE id='.$mline[2]);
print_r($sql);
Написал функцию на скорую руку для запросов с MySQL
Последний раз редактировалось Deathdreams; 23.03.2010 в 00:33..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|