Перейти к содержимому


Партнерская программа Kredov

Preg_replace

#1 m0tti

m0tti
  • Пользователь
  • 343 сообщений
  • Репутация: 0
0

Отправлено 12 Сентябрь 2009 - 17:44

Ни как немогу на парсере дописать полный путь к картинке, он ее парсит в виде img src=./ , а нужно вместо ./ воткнуть имя ресурса

$res = preg_replace('/<img src="./', '<img src="http://site.ru/', $temp[2]);

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Сентябрь 2009 - 21:58

m0tti, дурь делаете, зачем вам это нужно? А так всё просто
$res = preg_replace('#<img src="(\.\/)#Ui', '<img src="\\1', $temp[2]);

Но это дурь, скажите что вам нужно, мы предложим вариант получше :rolleyes:
  • 0

#3 m0tti

m0tti
    Topic Starter
  • Пользователь
  • 343 сообщений
  • Репутация: 0

Отправлено 12 Сентябрь 2009 - 23:25

вот мой парсер под дле

Он обрезает внешние линки, а картинки там в формате img src=./folder/что то там.jpg

<?php

$cache_res = dle_cache("cache_res", $config['skin']); // кеширование ???
if ( ! $cache_res ) { // если нет
$page = file_get_contents("http://site.ru/page.htm");
preg_match('/<div class="foto_box">(.+)<div class="paging" style="position: relative; clear: both; text-align: center">/isU', $page, $temp);

$res = preg_replace('/<a.+>/isU', ' ', $temp[1]);
$res = preg_replace('/<\/a>/isU', ' ', $res);
//echo $res;
$res = iconv("utf-8", "windows-1251//IGNORE", $res); //меняем ей кодировку, ато у меня отображалось в неправильной кодировке.
$cache_res = $res;

create_cache("cache_res", $cache_res, $config['skin']); // вгон в кеш

}
// компайл
$tpl->load_template('static.tpl');
$tpl->set('{description}', "Новое у нас на сайте");
$tpl->set('{static}', $cache_res);
$tpl->set('{pages}', "");
$tpl->compile('content');
$tpl->clear();
?>

  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 13 Сентябрь 2009 - 13:01

m0tti, в следующий раз не оформленный текст даже читать не буду, форматируйте с помощью bb-тегов, что уж так сложно? Потом не обижайтесь что вам никто не отвечает...
Функция dle_cache - получает содержимое указанного в параметрах файла с расширением tmp из папки cache
function dle_cache($prefix, $cache_id=false, $member_prefix=false){
global $config, $is_logged, $member_id; // вносим глобальные переменные

if ($config['allow_cache'] != "yes") return false; // если запрещено получать содержимое файлов.

if ($is_logged) $end_file = $member_id['user_group']; else $end_file = "0"; // проверка залогиненности(где применяется не знаю, и зачем нужна)

if (!$cache_id) {
$filename = ENGINE_DIR.'/cache/'.$prefix.'.tmp'; // если номер шаблона не передан
} else {
// если шаблон передан
$cache_id = totranslit ($cache_id);

if ($member_prefix)
$filename = ENGINE_DIR."/cache/".$prefix."_".$cache_id."_".$end_file.".tmp"; // с юзерским префиксом
else
$filename = ENGINE_DIR."/cache/".$prefix."_".$cache_id.".tmp"; // без юзерского префикса

}

return @file_get_contents($filename); // вернуть содержимое файла
}


функция create_cache - записывает переданное содержимое в файл tmp каталога cache
function create_cache($prefix, $cache_text, $cache_id=false, $member_prefix=false){
global $config, $is_logged, $member_id;

if ($config['allow_cache'] != "yes") return false;

if ($is_logged) $end_file = $member_id['user_group']; else $end_file = "0";


if (!$cache_id) {
$filename = ENGINE_DIR.'/cache/'.$prefix.'.tmp';
} else {
$cache_id = totranslit ($cache_id);

if ($member_prefix)
$filename = ENGINE_DIR."/cache/".$prefix."_".$cache_id."_".$end_file.".tmp";
else
$filename = ENGINE_DIR."/cache/".$prefix."_".$cache_id.".tmp";

}

$fp = fopen($filename, 'wb+');
fwrite($fp, $cache_text);
fclose($fp);

@chmod($filename, 0666);

}


$cache_res = dle_cache("cache_res", $config['skin']); // получить содержимое файла cache/cache_res_[номер_шаблона(id)].tmp
if ( ! $cache_res ) { // если содержимое получить не удалось
$page = file_get_contents("http://site.ru/page.htm"); // Получаем содержимое вручную со страницы http://site.ru/page.htm
preg_match('/<div class="foto_box">(.+)<div class="paging" style="position: relative; clear: both; text-align: center">/isU', $page, $temp); // получаем всё что между div'ами с классами офрмления foto_box и paging

$res = preg_replace('/<a.+>/isU', ' ', $temp[1]); // из полученного(первого кармана) вырезаем сначала начало тега ссылки <a ...>
$res = preg_replace('/<\/a>/isU', ' ', $res); // затем вырезаем концовку </a>
//echo $res;
$res = iconv("utf-8", "windows-1251//IGNORE", $res); //меняем ей кодировку, ато у меня отображалось в неправильной кодировке.
$cache_res = $res; //

create_cache("cache_res", $cache_res, $config['skin']); // вгон в файл(в конец), который потом используется выше в коде.

}
// компайл
$tpl->load_template('static.tpl'); // подгружаем страничку шаблона

//передаём переменные в шаблон
$tpl->set('{description}', "Новое у нас на сайте");
$tpl->set('{static}', $cache_res);
$tpl->set('{pages}', "");

// компилим содержимое
$tpl->compile('content');
// очищаем стек шаблонов.
$tpl->clear();

  • 0

#5 m0tti

m0tti
    Topic Starter
  • Пользователь
  • 343 сообщений
  • Репутация: 0

Отправлено 13 Сентябрь 2009 - 20:28

В том то и суть как быть с каринкой ?
у меня в источнике картинка в виде <img src="./realsoft/images, как туда подставить полный путь?


  • 0


Оформление форума – IPBSkins.ru