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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
strengerst
Отправлено: 02 Сентября, 2012 - 21:22:35
Post Id


Частый гость


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


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




Есть массив:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => грн             королевский атлас      длина  92 см</div></div></div>
  3.     [1] => грн             длина рукава регулируется</div></div></div>
  4.     [2] => грн          82% viscose, 13% elasthan, 5% polyamide</div></div></div>)

как получить такие данные
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => королевский атлас  длина  92 см
  3.     [1] => длина рукава регулируется
  4.     [2] => 82% viscose, 13% elasthan, 5% polyamide);
чесно сам пытался но нервы на пределе уже делал так:

PHP:
скопировать код в буфер обмена
  1. function collback4($prise){return preg_replace('/грн\s*(\w*.*)<?/','$1',$prise);}
  2.        $prise4= array_map('collback4', $prise);


$prise - это массив описанный выше. Кто знает напишите как правильно.
 
 Top
DelphinPRO
Отправлено: 02 Сентября, 2012 - 21:34:53
Post Id



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


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


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




Зачем заморачиваться срегалярками, когда можно обойтись простым поиском/заменой:

PHP:
скопировать код в буфер обмена
  1. $price = Array(
  2.         0 => 'грн             королевский атлас      длина  92 см</div></div></div>',
  3.         1 => 'грн             длина рукава регулируется</div></div></div>',
  4.         2 => 'грн          82% viscose, 13% elasthan, 5% polyamide</div></div></div>',
  5. );
  6.  
  7. function callback_func($price){
  8.         return trim(str_replace(array('грн', '  ', '</div>'), ' ', $price));
  9. }
  10. $price4 = array_map('callback_func', $price);
  11. echo '<pre>';
  12. var_dump($price4);
  13. // Результат
  14. //array(3) {
  15. //  [0]=>
  16. //  string(31) "королевский атлас   длина 92 см"
  17. //  [1]=>
  18. //  string(25) "длина рукава регулируется"
  19. //  [2]=>
  20. //  string(39) "82% viscose, 13% elasthan, 5% polyamide"
  21. //}

(Отредактировано автором: 02 Сентября, 2012 - 21:37:26)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Сентября, 2012 - 21:38:22
Post Id



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


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


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




А, уже ответили )

(Отредактировано автором: 02 Сентября, 2012 - 21:46:39)

 
 Top
strengerst
Отправлено: 02 Сентября, 2012 - 22:12:47
Post Id


Частый гость


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


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




спасибо большое за ответ воспользуюсь. А все таки как правильно написать регулярное выражения для этого условия поиск. Может кто знает.
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Сентября, 2012 - 22:33:59
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. function callback($prise)
  2. {
  3.       return trim(preg_replace(array('~грн|<.*>~', '~[\s]+~'), array('', ' '), $prise));
  4. }

(Отредактировано автором: 02 Сентября, 2012 - 22:34:28)

 
 Top
strengerst
Отправлено: 02 Сентября, 2012 - 22:52:09
Post Id


Частый гость


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


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




Еще раз спасибо за помощь , сам бы не придумал.)
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Сентября, 2012 - 23:01:43
Post Id



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


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


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




Не за что.
 
 Top
igrok95
Отправлено: 03 Сентября, 2012 - 08:26:06
Post Id


Новичок


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


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




Всем привет! как правильно составить регулярное вырожение .Что бы он выводил все что находиться между тегами <p>текст</p> на странице http://igrok95.jino.ru/temp.html? Мой вариант


$user_info = file_get_contents ("http://igrok95.jino.ru/temp.html");

preg_match_all ('/<p>.*<\/p>/',$user_info, $pat);

print_r ($pat);
 
 Top
strengerst
Отправлено: 03 Сентября, 2012 - 12:15:09
Post Id


Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. $user_info = file_get_contents ("http://igrok95.jino.ru/temp.html");
  2.  
  3.  preg_match_all('/<p>.*<\/p>/s',$user_info, $pat);
  4.  
  5.  print_r ($pat);

Работает)))))))))) Модификатор s - здесь означает, что точка соответствует любому символу включая перевод строки, а без этого модификатора только всем символам без перевода строки, а так как текст искомый между тегами многострочный выражение неработало.)

(Отредактировано автором: 03 Сентября, 2012 - 12:31:58)

 
 Top
igrok95
Отправлено: 03 Сентября, 2012 - 12:54:58
Post Id


Новичок


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


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




Спасибо strengerst!

Как написать регулярное вырожение для:


<div id="text">

<p>текст какой-то</p>

</div>
 
 Top
strengerst
Отправлено: 03 Сентября, 2012 - 18:50:06
Post Id


Частый гость


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


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




В данный момент у тебя на страницы

нету
 
 Top
igrok95
Отправлено: 03 Сентября, 2012 - 18:54:07
Post Id


Новичок


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


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




Брат очень нужна помощь я пытаюсь вставить в базу значение:что я там не так делаю .У меня в базу вставляется только значение array а не адрес картинки!


mysql_select_db('data',mysql_connect('localhost','root',''));
$query = mysql_query('SELECT * FROM test');
$result = mysql_fetch_array($query);


$user_info = file_get_contents ("http://igrok95.jino.ru/temp.html");

$s = preg_match_all('/<img.*<a/s',$user_info, $pat);


$a = "insert into test(imag) value('$pat')";//Вставка данных в базу даннх.
print_r(mysql_query($a));
 
 Top
vanicon
Отправлено: 03 Сентября, 2012 - 20:06:18
Post Id



Частый посетитель


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


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




$pat - это массив данных полученных с помощью регулярки.


-----
Так было, так есть и так будет
 
 Top
igrok95
Отправлено: 03 Сентября, 2012 - 20:08:58
Post Id


Новичок


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


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




куда вставить var dump?
 
 Top
vanicon
Отправлено: 03 Сентября, 2012 - 20:11:53
Post Id



Частый посетитель


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


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




$pat - это не строка а массив, так разбирай его если нужно несколько значений. Или если нужно тока одно значение то, $pat[0][0]


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB