Здравствуйте, имеется участок кода: HTML: <table rel="850" border="0" cellpadding="1" cellspacing="3" style="border: 1px solid #000000; background-color: transparent; width: 180px;"> <tbody> <tr> <td valign="top" align="center" width="100%"> <center> <a href="http://site.net/got.php?l=dWlkPTE3MzQzNDEzNzYmaWQ9NDc0NzEmdGlkPTQyODQ5MSZwYz1qeUVoaU5aUHJyJnQ9MiZibnVtPVVDNGFBNFdXdG1Vc2pVUTk5V2tkJmJpZD03OTQzNiZtYz1hNzRmY2ZiZjA0N2RlZGYyZDA2NmIzNWM5N2E3MDM1ZCZwb3M9MSZzZXNzPTRiMWZkZjQ0NzQwMjg4NGE3NTgyMTdiZDkwYmMzODlmJnRpZj0xJnJlZjE9JnRiPVtSRUZd" onclick="this.setAttribute(\'href\', __bodyHandler(this.href, event, 52279));" onmouseover="document.getElementById(\'url1905029050428491\').style.color=\'171717\'; document.getElementById(\'url1905029050428491\').style.textDecoration=\'underline\';return true" onmouseout="document.getElementById(\'url1905029050428491\').style.color=\'\';document.getElementById(\'url1905029050428491\').style.textDecoration=\'\';return true" target="_blank"> <img class="newsimg" src="http://me148.img-giganto.net/i/14560/v7GZ5vI2tMV5PNP.jpg" target="_blank" width="170" height="170" alt="текст" title="текст"> </a> <br> <div style="display: block; padding-top: 5px"> <a class="linkt" href="http://site.net/got.php?l=dWlkPTE3MzQzNDEzNzYmaWQ9NDc0NzEmdGlkPTQyODQ5MSZwYz1qeUVoaU5aUHJyJnQ9MiZibnVtPVVDNGFBNFdXdG1Vc2pVUTk5V2tkJmJpZD03OTQzNiZtYz1hNzRmY2ZiZjA0N2RlZGYyZDA2NmIzNWM5N2E3MDM1ZCZwb3M9MSZzZXNzPTRiMWZkZjQ0NzQwMjg4NGE3NTgyMTdiZDkwYmMzODlmJnRpZj0xJnJlZjE9JnRiPVtSRUZd" onclick="this.setAttribute(\'href\', __bodyHandler(this.href, event, 52279));" target="_blank" id="url1905029050428491">текст</a> </div> </center> </td> </tr> ... </tbody> </table> и так несколько подряд идущих блоков <tr>. Нужно достать все значения атрибута href, тега a. Т. е. в данном примере строку http://site.net/got.php?l=dWlkPTE3MzQzNDEzNzYmaWQ9NDc0NzEmdGlkPTQyODQ5MSZwYz1qeUVoaU5aUHJyJnQ9MiZibnVtPVVDNGFBNFdXdG1Vc2pVUTk5V2tkJmJpZD03OTQzNiZtYz1hNzRmY2ZiZjA0N2RlZGYyZDA2NmIzNWM5N2E3MDM1ZCZwb3M9MSZzZXNzPTRiMWZkZjQ0NzQwMjg4NGE3NTgyMTdiZDkwYmMzODlmJnRpZj0xJnJlZjE9JnRiPVtSRUZd НО только те ссылки, которые внутри тегов <table><center> дерева, остальные не нужно. Спасибо
Регулярное выражение Всем Доброго дня! Есть такая строка кода: HTML: ITowns.initialize({"groups":null,"towns":[{"id":80121,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-01","island_x":732,"island_y":694,"plenty":"wood","r are":"stone","has_conqueror":false,"researches":{"berth" :true,"conscription":true,"mathematics":true},"favor":500},{"id":78218,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-02","island_x":716,"island_y":708,"plenty":"iron","rare":"wood","has_conqueror":fal se,"researches":{"berth":true,"conscription":true,"mathematics&quo t;:true},"favor":500},{"id":57664,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-03","island_x":681,"island_y":706,"plenty":"stone","rare":"wood","has_conqueror":fa lse,"researches":{"berth":true,"conscription":true,"mathematics&qu ot;:true},"favor":500},{"id":46826,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-04","island_x":679,"island_y":703,"plenty":"iron","rare":"wood","has_conqueror":fal se,"researches":{"berth":true,"conscription":true,"mathematics&quo t;:true},"favor":500}..... Из этой строки мне нужно выдернуть значения ID и NAME, перекодировать значение NAME в кириллицу и сохранить эти значения в переменные, для дальнейшего использования... Не пойму как составить регулярку, потому что весь код огромный. "id" и "name" встречается огромное количество раз, а мне нужно выдернуть значения именно из этой строчки...
А как убрать лишнее? Например у меня есть PHP: ve 4v 0e6rv40w6erv4e6w1 >23fRQQ>@3<div class="name">Textte xte(texxtt)</div>ve 4v 0e6rv40w6erv4e6w1 >23fRQQ>@3<div class="msg">exttexteexttexte</div>ve 4v 0e6rv40w6erv4e6w1 >23fRQQ>@3ve 4v 0e6rv40w6erv4e6w1 >23fRQQ>@3 <div class="name">Texttexte(texxtt)</div>ve 4v 0e6rv40w6erv4e6w1 >23fRQQ>@3<div class="msg">exttexteexttexte</div>ve 4v 0e6rv40w6erv4e6w1 >23fRQQ>@3 Нужно оставить только то что находится в тегах div (и сами теги) PHP: <div class="name">Textte xte(texxtt)</div> <div class="msg">exttexteexttexte</div>
В общем при помощи preg_match('#ITowns.initialize(.+)#', $ans, $vilages); я забираю нужную мне строку в переменную. Потом используя PHP: $m = explode(',', $vilages[0]); foreach($m as $v) { if($p = strpos($v, 'id')) { $id[] = substr($v,$p+4); } elseif($p = strpos($v, 'name')) { $name[] = substr($v,$p+6); } } echo '<br><br><pre>'; print_r($id); echo '<br><br>'; print_r($name); echo '</pre>'; выбираю нужные значения. $name выбирается правильно, а вот $id нет. Создается массив из 4-х элементов... Три из которых мне вообще не нужны... Нужен только первый элемент... HTML: Array ( [0] => 51543 [1] => e left\">\n\t \n\t\t \n\t\t <\/div><%\n\t\tvar active_group_id = ITowns.getActiveTownGroup().id [2] => [3] => n groups) {\n\t\t\t\tif (groups.hasOwnProperty(id) && parseInt(id [4] => = \"0\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\n\t\t\t\tsorted_list = ITowns.getSortedTownGroupMapByName(group.id);\n\t\t\t\t%>\n\n\t\t\t\t <%= cssClass %>\">\n\t\t\t\t\t \n\t\t\t\t\t\t<%= (group.id === null ? msg_keine_gruppe : group.name ) %><\/a>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t \" class=\"town_group\">\n\t\t\t\t\t\t<% for (i = 0 [5] => "g<%= id %>_splitted<%= splitted %>\" class=\"town_group\">\n\t\t\t\t\t\t\t<%}%>\n\n\t\t\t\t\t\t\t \">\n\t\t\t\t\t\t\t\t\"><%= ITowns.getTown(town.id).name %><\/a>\n\t\t\t\t\t\t\t\t<% if (group.id !== null) { %>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<% } %>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<% } %>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t<% }\n\t\t%><\/div>\n\t<\/div>\n<\/div>\n \n\t \n\t\t <\/div>\n\t<\/div>\n<\/div>"}); ) Как же правильно сделать выборку?
Да, json_decode мне бы здорово помог... Только вот не могу разобрать как при помощи него получить массив с данными,т.е. как для каждого значения получить переменную?
Блин, ну так лень почитать то, что я скинул что ли? Расписано же. PHP: $data = json_decode($json, true); $towns = $data['towns']; for ($i = 0; $i < count(towns); $i++) { $town = $towns[i]; echo "Town name is ". $town['name'] .", town id is ". $town['id'] ."\n"; } Код не тестил, но по идее должно работать. Если будут ошибки, то оставляю их исправление на тебя.
Помогите написать регулярное выражение. В Smarty есть функция модификатор regex_replace, которая принимает регулярку. Так вот нужно регулярное выражение которое очистит html код от всех тегов, кроме <div>,<a>,<ul>,<li>. Чтобы остался лишь текст и кусок кода типа такого Code: <div style="display:none"><ul><li><a href="http://somehost.com/">link</a></li><li><a href="http://somehost.com/">link</a></li></ul></div> Очистка от всех тегов будет выглядеть там примерено так : Code: {$data|regex_replace:"/<.*?>/ ":""|truncate:500:"...":false:true|replace:']]>':''} Но как сделать чтобы не трогало теги <div>,<a>,<ul>,<li>. и аналогичные закрывающие? p.s. Сам спросил, сам ответил. Проблему решил путем модификации плагина Smarty. (Smarty strip_tags modifier plugin). Но из любопытства вопрос о регулярке остается в силе.
Есть домен 123.com. Нужно сделать такой редирект: 123.com/abc чтобы переходило на 123.com/1.php?abc Но чтобы некоторые файлы (например index.php, admin.php) НЕ подходили этому правилу, то есть чтобы запрос 123.com/index.php никак не трансформировался. Помогите плс.
tatu-mashinka-induktsionnaya- меняется каждый раз. Количество слов, разделенных дефисами тоже разное...
Есть домен 123.com. Нужно сделать такой редирект: 123.com/abc чтобы переходило на 123.com/1.php?abc Но чтобы некоторые файлы (например index.php, admin.php) НЕ подходили этому правилу, то есть чтобы запрос 123.com/index.php никак не трансформировался. Помогите плс.
qbz RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond %{REQUEST_FILENAME} !index.php|1.php|admin.php [NC] RewriteRule ^(.+)$ 1.php?$1 [L]