Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) 1 [2] 3 4  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Помогите написать регулярку, как исключить символы из шаблона
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


блин.. я не успеваю одно дело закончить. тут winston щас на форуме - бог регулярок http://phpforum.ru/index.php?showuser=18161 - попроси помощи через ЛС


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:




Попробую по другому:

Допустим есть несколько строк такого вида:

"50":{"id":16600,"name":"\u0420\u043e\u0441\u0433\u0430\u0432","dir":"n","expansion_stage":3,"x":775,"y":639,"ox":181,"oy":236,"offer":"iron","demand":"wood"}

"54":{"id":19409,"name":"\u0420\u043e\u0441\u043d\u043e\u0441\u043a\u043e\u043d\u043e\u0441","dir":"n","expansion_stage":3,"x":788,"y":648,"ox":629,"oy":170,"offer":"stone","demand":"wood","mood":100,"relation_status":1,"ratio":1.25,"loot":1342173457,"lootable_human":"13.07.12 \u0432 13:57","looted":1342173157}

"52":{"id":18546,"name":"\u0413\u0430\u0432\u043d\u044d\u0439\u043a\u043e\u0434\u0440\u044d\u0439","dir":"n","expansion_stage":4,"x":776,"y":656,"ox":700,"oy":200,"offer":"iron","demand":"wood"}

"53":{"id":18550,"name":"\u041d\u043e\u0441\u0445\u0438\u0433\u0430\u0432\u0440\u043e","dir":"n","expansion_stage":4,"x":776,"y":656,"ox":452,"oy":92,"offer":"iron","demand":"wood"}

"57":{"id":19412,"name":"\u0422\u0430\u0445\u0438\u0433\u0430","dir":"n","expansion_stage":3,"x":788,"y":648,"ox":694,"oy":296,"offer":"stone","demand":"wood","mood":100,"relation_status":0,"ratio":1.25}


Как мне выбрать то, что находится между {.....}, но только те, где встречается relation_status...

???

Т.е. оставить только

{"id":19409,"name":"\u0420\u043e\u0441\u043d\u043e\u0441\u043a\u043e\u043d\u043e\u0441","dir":"n","expansion_stage":3,"x":788,"y":648,"ox":629,"oy":170,"offer":"stone","demand":"wood","mood":100,"relation_status":1,"ratio":1.25,"loot":1342173457,"lootable_human":"13.07.12 \u0432 13:57","looted":1342173157}

{
"id":19412,"name":"\u0422\u0430\u0445\u0438\u0433\u0430","dir":"n","expansion_stage":3,"x":788,"y":648,"ox":694,"oy":296,"offer":"stone","demand":"wood","mood":100,"relation_status":0,"ratio":1.25}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


получаешь эти строки в массив
потом
 foreach($arr as $value)

в цикле
 if(substr_count($value, 'relation_status')>0)
echo $value.'<br/>';


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 13 дней
Карма: 552




Цитата (Игорь_Vasinsky @ 17.07.2012 - 21:57)
тут winston щас на форуме - бог регулярок

:lol: :lol: :lol:

Свернутый текст
$str = '"50":{"id":16600,"name":"\u0420\u043e\u0441\u0433\u0430\u0432","dir":"n","expansion_stage":3,"x":775,"y"  :639,"ox":181,"oy":236,"offer":"iron","demand":& ;quo t;wood"}

"54":{"id":19409,"name":"\u0420\u043e\u0441\u043d\u043e\u0441\u043a\u043e\u043d\u043e\u0441","dir":"n","expansion_stage":3,"x":788,"y" :648,"ox":629,"oy":170,"offer":"stone","demand":"wood","mood":100,"relation_status":1,"ratio":1.25,"loot":1342173457,"lootable_huma n":"13.07.12 \u0432 13:57","looted":1342173157}

"52":{"id":18546,"name":"\u0413\u0430\u0432\u043d\u044d\u0439\u043a\u043e\u0434\u0440\u044d\u0439","dir":"n","expansion_stage":4,"x":776,"y" :656,"ox":700,"oy":200,"offer":"iron","demand":"wood"}

"53":{"id":18550,"name":"\u041d\u043e\u0441\u0445\u0438\u0433\u0430\u0432\u0440\u043e","dir":"n","expansion_stage":4,"x":776,"y" :656,"ox":452,"oy":92,"offer":"iron","demand":" ; ;wood"}

"57":{"id":19412,"name":"\u0422\u0430\u0445\u0438\u0433\u0430","dir":"n","expansion_stage":3,"x":788,"y":64 8,"ox":694,"oy":296,"offer":"stone","demand":" wood","mood":100,"relation_status":0,"ratio":1.25}'
;

preg_match_all('#^.*({.*"relation_status".*}).*$#mu', $str, $m);

echo '<pre>' . print_r($m, 1) . '</pre>';


Результат
  [1] => Array
(
[0] => "id":19409,"name":"\u0420\u043e\u0441\u043d\u043e\u0441\u043a\u043e\u043d\u043e\u0441","dir":"n","expansion_stage":3,"x":788,"y" :648,"ox":629,"oy":170,"offer":"stone","demand":"wood","mood":100,"relation_status"
[1] => "id":19412,"name":"\u0422\u0430\u0445\u0438\u0433\u0430","dir":"n","expansion_stage":3,"x":788,"y":64 8,"ox":694,"oy":296,"offer":"stone","demand":" wood","mood":100,"relation_status"
)


Это сообщение отредактировал Winston - 17.07.2012 - 23:52
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:




Блин, так работает, а когда применяю к общему коду
http://phpforum.ru/html/counter/counter.ph...9/Json.txt.html

Выводит пустой массив:


<pre>Array
(
[
0] => Array
(
)

[
1] => Array
(
)

)
</
pre>


А мне то нужно чтобы из ответа сервера выбирались эти строки...
Пробовал так, все равно пустой массив...

preg_match_all('#.*({.*"relation_status".*}).*$#mu', $str, $m);


Это сообщение отредактировал ArtemKrass - 18.07.2012 - 08:33
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


$repl = array('CDATA'=>'', '<script type=\"text\/javascript\">'=>'');
$file = strtr(file_get_contents('json.txt'), $repl);

потом работай с $file;


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:




Не работает...
Приведу код скрипта, гляньте пожалуйста, если есть время...


<?php
ini_set("max_execution_time", "700");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Content-Type: text/html; charset=utf-8");
header("Pragma: no-cache");

error_reporting( E_ALL );

$url = 'http://ru.grepolis.com';
$urlTo_start_page = 'http://ru.grepolis.com/start/index?action=login_from_start_page';
$urlTo_start_page_next = 'http://ru.grepolis.com/start/index?action=fetch_news';
$urlTo_login_to_game = 'http://ru.grepolis.com/start?action=login_to_game_world';

$name = 'Tartang'; // Логин
$password = '7TXzMQvUZt3qUqh'; // Пароль

define('ROOT', dirname(__FILE__).'/');
$cookie_filename = ROOT . uniqid(md5(time()), true).'.tmp';

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30 );
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_filename);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_filename);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($curl, CURLOPT_REFERER, 'http://google.com' );
curl_setopt($curl, CURLOPT_URL, $url);
$html = curl_exec($curl);

$post = 'json={"name":"' . $name . '","password":"' . $password . '","passwordhash":"","autologin":false}';

curl_setopt($curl, CURLOPT_URL, $urlTo_start_page);
curl_setopt($curl, CURLOPT_REFERER, $url );
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$html = curl_exec($curl);

$post = 'json={}';
curl_setopt($curl, CURLOPT_URL, $urlTo_start_page_next);
curl_setopt($curl, CURLOPT_REFERER, $urlTo_start_page );
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$html = curl_exec($curl);

$post = 'world=ru11&facebook_session=&facebook_login=&gift_key=portal_sid=name=' . $name . '&password=' . $password;

curl_setopt($curl, CURLOPT_URL, $urlTo_login_to_game );
curl_setopt($curl, CURLOPT_REFERER, $urlTo_start_page_next );
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$html = curl_exec($curl);

preg_match("#Game\.csrfToken = '(\S+)'#", $html, $token);
$time = explode(' ', microtime());
$timef = $time[1] . substr($time[0], 2, 3);

// Здесь получаю ответ от сервера, в котором нужно выбрать 8 строчек с relation_status...
curl_setopt($curl, CURLOPT_URL, 'http://ru11.grepolis.com/game/data?action=get&town_id=51543&h='.$token[1].'&json={"types":[{"type":"grepolympiaTraining"},{"type": "map","param":{"x":9,"y":4}},{"type":"bar" ; ;},{"type":"playerprogress"}]}&_='.$timef);
curl_setopt($curl, CURLOPT_REFERER, 'http://ru11.grepolis.com/game/index?login=1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest'));
$html = curl_exec($curl);

$repl = array('CDATA'=>'', '<script type=\"text\/javascript\">'=>'');
$file = strtr(file_get_contents($html), $repl);
print_r ($file);

curl_close($curl);
?>


Это сообщение отредактировал ArtemKrass - 18.07.2012 - 08:52
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


show view
Цитата
print_r ($file);


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:





Warning: file_get_contents(261178 {"grepolympiaTraining":{"data":"{\"training_points_per_skillpoint\":1000,\"sword\":{\"0\":12,\"1\":10,\"2\":720},\"slinger\":{\"0\":16,\"1\":10,\"2\":720},\"archer\":{\"0\":20,\"1\":10,\"2\":720},\"hoplite\":{\"0\":24,\"1\":15,\"2\":480},\"rider\":{\"0\":56,\"1\":8,\"2\":900},\"chariot\":{\"0\":128,\"1\":4,\"2\":1800},\"zyklop\":{\"0\":800,\"1\":1,\"2\":7200},\"harpy\":{\"0\":360,\"1\":1,\"2\":7200},\"medusa\":{\"0\":600,\"1\":1,\"2\":7200},\"minotaur\":{\"0\":420,\"1\":1,\"2\":7200},\"manticore\":{\"0\":880,\"1\":1,\"2\&qu in Y:\home\Curl1.ru\www\index.php on line 112


или код страницы


<br />
<
b>Warning</b>: file_get_contents(261178
{"grepolympiaTraining":{"data":"{\"training_points_per_skillpoint\":1000,\"sword\":{\"0\":12,\"1\":10,\"2\":720},\"slinger\":{\"0\":16,\"1\":10,\"2\":720},\"archer\":{\"0\":20,\"1\":10,\"2\":720},\"hoplite\":{\"0\":24,\"1\":15,\"2\":480},\"rider\":{\"0\":56,\"1\":8,\"2\":900},\"chariot\":{\"0\":128,\"1\":4,\"2\":1800},\"zyklop\":{\"0\":800,\"1\":1,\"2\":7200},\"harpy\":{\"0\":360,\"1\":1,\"2\":7200},\"medusa\":{\"0\":600,\"1\":1,\"2\":7200},\"minotaur\":{\"0\":420,\"1\":1,\"2\":7200},\"manticore\":{\"0\":880,\"1\":1,\"2\&qu in <b>Y:\home\Curl1.ru\www\index.php</b> on line <b>112</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script>



112 строка:
$file = strtr(file_get_contents($html), $repl);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


file_get_contents() - работает с файлом, а не со строкой.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:




Вот нормальная ссылка на ответ сервера:

Ответ сервера
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


так ты курлом в переменную складываешь контент или с файлом работаешь?

если в переменную - то

$repl = array('CDATA'=>'', '<script type=\"text\/javascript\">'=>'');
$data = strtr($content, $repl);



--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:




Чет я не пойму что это мне дает??(

Прочитал про CDATA
http://ru.wikipedia.org/wiki/CDATA

Въехать не могу...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


strtr() вырезало эту гадость, оставивь всё остальное


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ArtemKrass  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 88
Пользователь №: 32702
На форуме: 4 года, 5 месяцев, 23 дня
Карма:




На выходе все равно огромный блок кода... Почти ничего не поменялось...

http://dl.dropbox.com/u/70752478/strtr.txt
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) 1 [2] 3 4  Закрытая темаСоздание новой темыСоздание опроса