Запросом не получится, в mysql нет операций изменения значений ячеек с помощью регулярных выражений.
Возможно не хватает памяти, попробуйте увеличить значение memory_limit в php.ini.
Добавляете в meta.ini своего шаблона
[Актёры] options_key = actors type = textfield description = "Актёры" default = ""
В index.php шаблона добавляете
elseif (mso_segment(1)=='actors') require('type/actors.php');
Получится
# анализ сегментов URL, где переопределяется файл типа if ($mso_type_file == 'users') { if (mso_segment(3)=='edit') $mso_type_file = 'users-form'; // редактирование комюзера elseif (mso_segment(3)=='lost') $mso_type_file = 'users-form-lost'; // восстановление пароля комюзера elseif (mso_segment(2)=='') $mso_type_file = 'users-all'; // список всех комюзеров elseif (mso_segment(1)=='actors') require('type/actors.php'); }
В папке type создаёте файл actors.php, в него копируете данные из tag.php
В начале файла параметры заменяете на это
// параметры для получения страниц $par = array( 'limit' => mso_get_option('limit_post', 'templates', '7'), 'cut' => mso_get_option('more', 'templates', t('Читать полностью »')), 'type'=>false, 'custom_type'=>'tag', 'meta_key'=>'actors', 'function_add_custom_sql' => 'set_actors' ); function set_actors(){ $CI = &get_instance(); $CI->db->ar_where[3] = preg_replace("| = '(.*?)'|", " LIKE '%$1%'", $CI->db->ar_where[3]); }
В месте, где надо выводить актеров вставляете это (в файл page.php)
echo '<div class="info">'; // указан в meta раздел? if ($rasz = mso_page_meta('actors', $page_meta, '', '', '', false)) { // формируем ссылку $link = array(); $rasz = explode(',', $rasz); foreach($rasz as $value){ $value = trim($value); $link[] = '<a href="' . getinfo('siteurl') . 'actors/' . $value . '">' . $value . '</a>'; } // выводим echo '<span>Актёры:</span> ' . implode(', ', $link) ; } echo '</div>';
Поставьте сайт на локалку и воспользуйтесь сниффером (fiddler2, wireshark, HTTP Analyzer) - увидите все обращения к внешним ресурсам.
Варианты вроде Firebug, Drаgonаly помогут только если данные подгружаются с помощью js скрипта, что в вашем случае маловероятно.
На примере http://www.phpbb2.ru/forums.html
<?php$forum = file_get_contents('http://www.phpbb2.ru/forums.html');preg_match('|Наши пользователи оставили <b>(.*?)</b> сообщений.|', $forum, $count_message);preg_match('|Всего <b>(.*?)</b> зарегистрированных пользователей|', $forum, $count_users);$count_message = $count_message[1]; // количество сообщений$count_users = $count_users[1]; // количество юзеров# вывод информацииecho "$count_users пользователей оставили $count_message сообщений";?>
Можно парсить по разделам на сайте, например
http://yandex.ru/yandsearch?text=http://newsland.ru/news&site=newsland.ru&lr=46
http://yandex.ru/yandsearch?text=http://newsland.ru/page&site=newsland.ru&lr=46
подойдет, но ограничение на 1000 ссылок в результатах поиска по 1 запросу и здесь не обойти.
$cat = get_category(get_query_var('cat'),false);$cat_parent = $cat->parent; // ID родительской категории
Пользуюсь уже более года услугами ruweb, нареканий к ним нет.
/ru/forum/489616
Ндас, весь этот гемор можно избежать, написав несколько строк кода:
<?php $abc = array(); # получаем все посты $posts = get_posts('numberposts=-1'); # создаём массив с алфавитом foreach($posts as $post){ $sub_title = mb_substr($post->post_title, 0, 2); $abc[$sub_title][] = $post; } # выводим алфавит: "первые 2 буквы - количество постов" foreach($abc as $key => $value){ echo $key. ' - ' .count($value); } ?>
это создаст такую пагу http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%90%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D0%BD%D1%8B%D0%B9_%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C
для вывода записей по определённым буквам, нужно будет написать ещё несколько строчек...