Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Просмотр данных из массива preg_match_all
 
 автор: oli   (31.05.2008 в 13:13)   письмо автору
 
 

*********************
Содержимое text.txt

egy e te et ww w">8.0923</td> dheh dg6.6333
*********************




********************
Обработчик

$file_array = file("text.txt");
if(!$file_array)
{
echo("Error");
}
else
{

for($i=0; $i < count($file_array); $i++)
{

preg_match_all('/.*">[6-9]{1}\.+[0-9]{4}<\/td>/', $file_array[$i], $ok);


}


}
Проблема следующая-Как извлечь из массива $ok
по отдельности
все найденные совподения и присвоить им разные переменные?
Делаю так: echo $[0][0]-выводит все найденные совпадения на одну строку-Не подходит

   
 
 автор: mihdan   (01.06.2008 в 01:03)   письмо автору
 
   для: oli   (31.05.2008 в 13:13)
 

Выполните код и станет ясно:

<?
echo '<pre>';
print_r($ok );
echo 
'</pre>';
?>

   
 
 автор: OLi   (01.06.2008 в 17:14)   письмо автору
 
   для: mihdan   (01.06.2008 в 01:03)
 

>Выполните код и станет ясно:
>

><?
>echo '<pre>';
>
print_r($ok );
>echo 
'</pre>';
>
?>


Так я пробовал-выводит вот такую бесконечную хрень:
Array
(
[0] => Array
(
)

)
Array
(
[0] => Array
(
)

)
Array
(
[0] => Array
(
)

)
...................
Если сделать так

echo"<pre>";
print_r($ok[0] [0]);
echo"</pre>";
выводит то что нужно а именно все совпадения-Вот теперь надо эти совпадения присвоить разным переменным.
Предлагайте идеи...

   
 
 автор: OLi   (01.06.2008 в 17:25)   письмо автору
 
   для: OLi   (01.06.2008 в 17:14)
 

Может кто предложит свой скрипт выполняющий такую же функцию c использованием этого регул выражения
('/.*">[6-9]{1}\.+[0-9]{4}<\/td>/')

   
 
 автор: OLi   (02.06.2008 в 00:34)   письмо автору
 
   для: OLi   (01.06.2008 в 17:25)
 

Делаю так:
<?

$file_array 
file_get_contents("http://a");
if(!
$file_array)
{
echo(
"Error");
}
else
{

preg_match_all('/.*">[6-9]{1}\.+[0-9]{4}<\/td>/'$file_array$ok);

print_r($ok);


}
?>

Выводит
Array ( [0] => Array ( [0] => 8.4980 [1] => 8.4980 [2] => 8.4700 [3] => 8.5200 [4] => 8.4900 [5] => 8.6700 ) )

   
 
 автор: mihdan   (02.06.2008 в 11:03)   письмо автору
 
   для: oli   (31.05.2008 в 13:13)
 

Давайте тогда по-другому. Что вы хотите распарсить при помощи этого выражения?
Пример пожалуйста дайте.

   
 
 автор: OLi   (02.06.2008 в 12:55)   письмо автору
 
   для: mihdan   (02.06.2008 в 11:03)
 

Все я нашел способ выдирания из массива совпадений. А парсить надо цифры с одной страницы.
Проблема в другом теперь я извлекаю из массива строку в которой есть совпадения
<td width="50" align="right" class="change1">8.4980</td></td>

А мне надо извлечь только
8.4980

Как такое реализовать?
Возможно надо поправить мое рег выражение

   
 
 автор: mihdan   (02.06.2008 в 14:05)   письмо автору
 
   для: OLi   (02.06.2008 в 12:55)
 

Вот паттерн:

<?
$pattern 
'|<td[^>]+>([^<]+)<\/td><\/td>|si';
?>

   
 
 автор: OLi   (02.06.2008 в 14:21)   письмо автору
 
   для: mihdan   (02.06.2008 в 14:05)
 

Что-то не понял-это рег выр применить к уже полученной строке т-е фильтровать пока не получу число?

   
 
 автор: mihdan   (02.06.2008 в 16:46)   письмо автору
 
   для: OLi   (02.06.2008 в 14:21)
 

Это выражение для вытягивания данных из файла


<?
$fp 
file_get_contents('file.txt');
$pattern '|<td[^>]+>([^<]+)<\/td><\/td>|si';
preg_match_all($pattern$fp$matchs);

echo 
'<pre>';
print_r($matchs);
echo 
'</pre>';
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования