HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 01.07.2007, 19:05
FreeNeDiX
Новичок
Регистрация: 01.06.2007
Сообщений: 16
Провел на форуме:
45987

Репутация: 0
Отправить сообщение для FreeNeDiX с помощью ICQ
По умолчанию

Хмм, регулярные выражения значит, в принципе все должно работать, скажите что не так?

<?php
$url = "http://site.nu/news.html";
$content = file_get_contents($url);
$pattern = '#<p align="left"><b>Новости:</b></p><p>(.*)</td>#is';
preg_match($pattern,$content,$out);
print($out);
?>

В итоге вместо нужной новости я вижу надпись Array.
Что не так?
 
Ответить с цитированием

  #2  
Старый 01.07.2007, 19:57
Kridan
Новичок
Регистрация: 02.06.2007
Сообщений: 24
Провел на форуме:
119202

Репутация: 19
По умолчанию

Цитата:
Сообщение от FreeNeDiX  
В итоге вместо нужной новости я вижу надпись Array.
Что не так?
Цитата:
mixed preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] ) Ищет в заданном тексте subject совпадения с шаблоном pattern.
В случае, если дополнительный параметр matches указан, он будет заполнен результатами поиска.
Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] - часть строки, соответствующую первой подмаске, и так далее.
Попробуй
print($out[0];
 
Ответить с цитированием

  #3  
Старый 02.07.2007, 01:44
FreeNeDiX
Новичок
Регистрация: 01.06.2007
Сообщений: 16
Провел на форуме:
45987

Репутация: 0
Отправить сообщение для FreeNeDiX с помощью ICQ
По умолчанию

print_r($out); пробовал, не работает, точнее вместо Array, выводится Array ( ).

Не print($out[0];
а print($out[0]);, иначе ошибка...хотя все равно не работает и высвечивается...точнее ничего не выводится на экран. Мистика...
 
Ответить с цитированием

  #4  
Старый 02.07.2007, 03:40
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

если $out массив то таким макаром он и не выведет. Почитайте про обход массивов.
 
Ответить с цитированием

  #5  
Старый 02.07.2007, 05:12
hhover
Познающий
Регистрация: 21.05.2007
Сообщений: 61
Провел на форуме:
79888

Репутация: 145
По умолчанию

Тебе дали нерабочую регулярку. Но тем не менее проверь, действительно ли в переменной $content содержится нужная страница.

И нужно было проявить минимум смекалки, чтобы догодаться, что если переменная пустая, когда при echo $variable; ничего не выводится. Я не знаю кем надо быть, чтобы по этому поводу вопросы задавать. Аналогично по функции print_r. Только тут еще надо хотя-бы слегка быть знакомым с понятием массив.

PHP код:
$pattern "/<p\salign\=\"left\"\>\<b\>(.+?)\<\/b\>\<\/p\>\s+\<p\>(.+?)\<\/td\>/is"
 
Ответить с цитированием

  #6  
Старый 02.07.2007, 05:56
FreeNeDiX
Новичок
Регистрация: 01.06.2007
Сообщений: 16
Провел на форуме:
45987

Репутация: 0
Отправить сообщение для FreeNeDiX с помощью ICQ
По умолчанию

Да, дейсвительно, спасибо тебе blaga. Вот полностью рабочий код:

<?php
$url = "http://site.nu/news.html";
$content = file_get_contents($url);
$pattern = "@<td height=\"40\" valign=\"top\"><b>Новость:</b><p>(.*)</td>@isU";
preg_match_all($pattern, $content, $out);
foreach($out[0] as $info)
{
echo("$info");
}
?>
 
Ответить с цитированием

  #7  
Старый 02.07.2007, 17:37
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


По умолчанию

Суть проблемы в том, что есть скрипт работает с определенным файлом, считывание и запись в него, как возможно заблокировать как нибудь допуск к этому файлу пока работает это скрипт, и от повторной запуски данного скрипта?
 
Ответить с цитированием

  #8  
Старый 03.07.2007, 17:20
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

DIAgen, тебе нужна функция flock()
if($fp=fopen($filename,'w') && flock($fp,LOCK_EX))
/*LOCK_EX - блокировка
взаимоисключающего доступа(используется для записи)*/
{
$rs=fwrite($fp,$content);
flock($fp, LOCK_UN); //LOCK_UN снять блок
fclose($fp);
return $rs;
}

для чтения используй LOCK_SH

Последний раз редактировалось Ni0x; 03.07.2007 в 17:23..
 
Ответить с цитированием

  #9  
Старый 06.07.2007, 09:11
Ska
Новичок
Регистрация: 30.03.2007
Сообщений: 6
Провел на форуме:
17852

Репутация: 7
По умолчанию

У меня такой вопрос я не могу подключить библиотеку php_sockets.dll(. Вроде всё делал так же как и при подключении библиотеки для работы с скуль( но скуль работает а это нет). За рание благодарен.
 
Ответить с цитированием

  #10  
Старый 06.07.2007, 10:28
n1†R0x
Постоянный
Регистрация: 20.01.2007
Сообщений: 787
Провел на форуме:
2924346

Репутация: 1719


Отправить сообщение для n1†R0x с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ska  
У меня такой вопрос я не могу подключить библиотеку php_sockets.dll(. Вроде всё делал так же как и при подключении библиотеки для работы с скуль( но скуль работает а это нет). За рание благодарен.
куда ты ставил? на локалхост? если да, то как?

я ставил так: скопировал .dll в каталог %WINDIR%\SYSTEM и раскомментировал строчку
;extension=php_sockets.dll //string #587
в php.ini (раздел Динамические Загружаемые Расширения)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ