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
Форумы портала PHP.SU :: Версия для печати :: не могу составить выражение
Форумы портала PHP.SU » PHP » Регулярные выражения » не могу составить выражение

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

1. strengerst - 02 Сентября, 2012 - 21:22:35 - перейти к сообщению
Есть массив:
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 - это массив описанный выше. Кто знает напишите как правильно.
2. DelphinPRO - 02 Сентября, 2012 - 21:34:53 - перейти к сообщению
Зачем заморачиваться срегалярками, когда можно обойтись простым поиском/заменой:

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. //}
3. armancho7777777 - 02 Сентября, 2012 - 21:38:22 - перейти к сообщению
А, уже ответили )
4. strengerst - 02 Сентября, 2012 - 22:12:47 - перейти к сообщению
спасибо большое за ответ воспользуюсь. А все таки как правильно написать регулярное выражения для этого условия поиск. Может кто знает.
5. armancho7777777 - 02 Сентября, 2012 - 22:33:59 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function callback($prise)
  2. {
  3.       return trim(preg_replace(array('~грн|<.*>~', '~[\s]+~'), array('', ' '), $prise));
  4. }
6. strengerst - 02 Сентября, 2012 - 22:52:09 - перейти к сообщению
Еще раз спасибо за помощь , сам бы не придумал.)
7. armancho7777777 - 02 Сентября, 2012 - 23:01:43 - перейти к сообщению
Не за что.
8. igrok95 - 03 Сентября, 2012 - 08:26:06 - перейти к сообщению
Всем привет! как правильно составить регулярное вырожение .Что бы он выводил все что находиться между тегами <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);
9. strengerst - 03 Сентября, 2012 - 12:15:09 - перейти к сообщению
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 - здесь означает, что точка соответствует любому символу включая перевод строки, а без этого модификатора только всем символам без перевода строки, а так как текст искомый между тегами многострочный выражение неработало.)
10. igrok95 - 03 Сентября, 2012 - 12:54:58 - перейти к сообщению
Спасибо strengerst!

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


<div id="text">

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

</div>
11. strengerst - 03 Сентября, 2012 - 18:50:06 - перейти к сообщению
В данный момент у тебя на страницы

нету
12. igrok95 - 03 Сентября, 2012 - 18:54:07 - перейти к сообщению
Брат очень нужна помощь я пытаюсь вставить в базу значение:что я там не так делаю .У меня в базу вставляется только значение 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));
13. vanicon - 03 Сентября, 2012 - 20:06:18 - перейти к сообщению
$pat - это массив данных полученных с помощью регулярки.
14. igrok95 - 03 Сентября, 2012 - 20:08:58 - перейти к сообщению
куда вставить var dump?
15. vanicon - 03 Сентября, 2012 - 20:11:53 - перейти к сообщению
$pat - это не строка а массив, так разбирай его если нужно несколько значений. Или если нужно тока одно значение то, $pat[0][0]

 

Powered by ExBB FM 1.0 RC1