Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: элементы массива в регулярном выражении

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: каждое значение массива в цикле
algebra
Отправлено: 27 Апреля, 2011 - 11:55:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




помогите пожалуйста, в чем ошибка?

PHP:
скопировать код в буфер обмена
  1. $l=0;
  2. $tex=file_get_contents("ссылка на статью с текстом");
  3. $ray_array = file("allray.txt");                     //массив районов из файла
  4. while ($rayon= 0)                       //пока район не заполнен значением
  5. {
  6. preg_match("#".$ray_array[$l++]."#", $tex[1], $rayon);
  7. }
  8. echo $rayon;   // показываем название района из статьи
 
 Top
EuGen Администратор
Отправлено: 27 Апреля, 2011 - 12:01:07
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




preg_match("#".trim($ray_array[$l++])."#", $tex[1], $rayon);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
algebra
Отправлено: 27 Апреля, 2011 - 12:25:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




все равно не отображает почему-то район
 
 Top
OrmaJever
Отправлено: 27 Апреля, 2011 - 12:33:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




algebra пишет:
while ($rayon= 0)

бесконечный цыкл


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
algebra
Отправлено: 27 Апреля, 2011 - 12:38:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




OrmaJever как правильно поступить в данном примере?
 
 Top
Мелкий Супермодератор
Отправлено: 27 Апреля, 2011 - 12:39:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Во-первых
algebra пишет:
while ($rayon= 0)

Цикл никогда не отработается, т.к. на первой же итерации условие сводится к 0 - выход из цикла.
Вероятно, имелось в виду != 0, хотя эта проверка так же не совсем корректна, см. пункт 2.

Во-вторых:
algebra пишет:
echo $rayon;

В $rayon будет массив, представленным способом нужного результата не будет.
И проверять в условии лучше как-то иначе, например


OrmaJever пишет:
бесконечный цыкл

наоборот только, while работает, пока условие == true. Получилась ветка кода, никогда не исполняемая.


-----
PostgreSQL DBA
 
 Top
algebra
Отправлено: 27 Апреля, 2011 - 13:10:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




теперь код, подправленный, выглядит так
PHP:
скопировать код в буфер обмена
  1. $l=0;
  2. $tex=file_get_contents("ссылка на статью с текстом");         // район ККБ
  3. $ray_array = file("allray.txt");                     //массив районов из файла
  4. while (empty($rayon))                      //пока район не заполнен значением
  5. {
  6. preg_match("#".trim($ray_array[$l++])."#", $tex[1], $rayon);
  7. }
  8. echo $rayon[1];   // показываем название района из статьи
  9.  

но все равно не отображается район
 
 Top
DlTA
Отправлено: 27 Апреля, 2011 - 13:22:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




значит пора посмотреть что на входе
"#".trim($ray_array[$l++])."#" и $tex[1]
 
 Top
algebra
Отправлено: 27 Апреля, 2011 - 15:38:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




спасибо, получилось
$tex[1] в данном примере не массив, а простая строковая переменная
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB