Скрипт поиска и замены - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB88.4375
BTC/USD67650.7289
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 03.03.2015, 02:48   #1
Weil
Senior Member
 
Регистрация: 30.06.2007
Сообщений: 107
Бабло: $44020
По умолчанию Скрипт поиска и замены

Накидайте, плз, php скрипт преобразования BB кода в html:
Есть исходный файл со строками вида:
PHP код:
[url=http://mysite.com]some_anchor[/url] 
нужно пройтись по всем строкам и преобразовать в:
PHP код:
<a href="http://mysite.com">some_anchor</a
Результат записать в отдельный файл, не изменяя исходный.
Weil вне форума  
Старый 03.03.2015, 02:59   #2
suzan
Member
 
Регистрация: 13.11.2014
Сообщений: 88
Бабло: $24725
По умолчанию

$str = file_get_contents("file.html");

$replace = str_replace('[url=', '<a href=', $str,);

$newfile = fopen("zamena_"."$file","w+");

fwrite($newfile, $replace);

fclose($newfile);
suzan вне форума  
Старый 03.03.2015, 03:07   #3
jarosek
jaros
 
Аватар для jarosek
 
Регистрация: 10.05.2009
Адрес: Киев
Сообщений: 1,498
Бабло: $221845
Отправить сообщение для jarosek с помощью Telegram Отправить сообщение для jarosek с помощью Skype™
По умолчанию

PHP код:
<?php
$file_nam    
=    file('links.txt');

    foreach(
$file_nam as $link){

        
$repl str_replace('[url=''<a href="'$link);
        
$repl str_replace('[/url]''</a>'$repl);
        
$repl str_replace(']''">'$repl);
        
        
$open=fopen('new_links.txt',"a+");
        
fwrite($open,$repl);
        
fclose($open);

    }
?>

Последний раз редактировалось jarosek; 03.03.2015 в 03:16.
jarosek вне форума  
Старый 03.03.2015, 03:28   #4
Strikelol
Senior Member
 
Регистрация: 31.03.2011
Сообщений: 3,336
Бабло: $669045
По умолчанию

О, а как сделать заменю любого на любое?
Писал вот такую штуку, но она как-то через раз мне отрезает лишнее.
PHP код:
function substr_replacer_for_html($article_text$search_word$replace_word) {
    
$len strlen($search_word);
    
$pos strpos($article_text$search_word);
    
$new_text substr_replace($article_text$replace_word$pos$len);
    return(
$new_text);

Прям чтобы туда со скобками и тд
Strikelol вне форума  
Старый 03.03.2015, 22:55   #5
Joe Perry
Member
 
Регистрация: 19.09.2014
Сообщений: 48
Бабло: $11495
По умолчанию

Цитата:
Сообщение от Strikelol Посмотреть сообщение
О, а как сделать заменю любого на любое?
Писал вот такую штуку, но она как-то через раз мне отрезает лишнее.
PHP код:
function substr_replacer_for_html($article_text$search_word$replace_word) {
    
$len strlen($search_word);
    
$pos strpos($article_text$search_word);
    
$new_text substr_replace($article_text$replace_word$pos$len);
    return(
$new_text);

Прям чтобы туда со скобками и тд
помойму это на пхп уже сделали и оно называется str_replace
Joe Perry вне форума  
Старый 04.03.2015, 00:56   #6
Strikelol
Senior Member
 
Регистрация: 31.03.2011
Сообщений: 3,336
Бабло: $669045
По умолчанию

Цитата:
Сообщение от Joe Perry Посмотреть сообщение
помойму это на пхп уже сделали и оно называется str_replace
Функции эти точно разные задачи исполняют, хотя бы потому что та что в моём посте отрабатывает раз. Но str_replace() всё равно не заменяет нормально скобки и слэши. Я конечно не заморачивался над тем чтобы осознать каким образом нужно "правильно" её юзать, но то что хочется - она не делает, как и первая. Хотя первая должна. У меня надо было вырезать пару тегов, в части текстов она с тегами еще отрезала несколько слов =\ Не критично но хотелось бы иметь рабочую или уметь пользоваться той что есть.
Strikelol вне форума  
Старый 04.03.2015, 01:01   #7
jarosek
jaros
 
Аватар для jarosek
 
Регистрация: 10.05.2009
Адрес: Киев
Сообщений: 1,498
Бабло: $221845
Отправить сообщение для jarosek с помощью Telegram Отправить сообщение для jarosek с помощью Skype™
По умолчанию

Цитата:
Сообщение от Strikelol Посмотреть сообщение
Функции эти точно разные задачи исполняют, хотя бы потому что та что в моём посте отрабатывает раз. Но str_replace() всё равно не заменяет нормально скобки и слэши. Я конечно не заморачивался над тем чтобы осознать каким образом нужно "правильно" её юзать, но то что хочется - она не делает, как и первая. Хотя первая должна. У меня надо было вырезать пару тегов, в части текстов она с тегами еще отрезала несколько слов =\ Не критично но хотелось бы иметь рабочую или уметь пользоваться той что есть.
так правильно задавай, экранируй символы и т.д.
jarosek вне форума  
Старый 04.03.2015, 01:08   #8
mironich
Python кодер
 
Аватар для mironich
 
Регистрация: 10.09.2012
Сообщений: 95
Бабло: $27484
Отправить сообщение для mironich с помощью ICQ
По умолчанию

PHP код:
<?php
    $content 
file_get_contents("in.txt");
    
$content preg_replace('#\[url=([^]]+)\]([^]]+)\[/url\]#''<a href="\1">\2</a>'$content);
    
file_put_contents('out.txt');
    
?>
mironich вне форума  
Старый 04.03.2015, 07:38   #9
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,354
Бабло: $470735
По умолчанию

Strikelol, я особо не вдумывался чего тебе надо, но заметил, что ты оперируешь позициями в str* функциях, что опасно при работе с мультибайтом, т.е. когда один символ занимает более одного байта. Твой код будет корректен только для однобайтовых кодировок типа cp1251 или iso-8859-*, но если у тебя utf8 или другой unicode, то нужно использовать, например, mb_str* функции
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума