персер текста

Статус
В этой теме нельзя размещать новые ответы.

pepeh

Создатель
Регистрация
24 Май 2008
Сообщения
43
Реакции
1
Мне нужно сделать такой скрипт который заменяет например
Название: Соседи
Оригинальное название: Соседи
Год выхода: 2010
Жанр: Мелодрама
Режиссер: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов
на
Название: Соседи
Оригинальное название: Соседи
Год выхода: 2010
Жанр: Мелодрама
Режиссер: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов
и еще может быть такой варианту что некоторый текст уже есть отформатированный bb кодами, чтобы оно стерло форматирования и обратно все исправило
HTML:
[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов
и чтобы получился такой как в примере 2.


Это будет вводиться в форму текст и так перерабатываться, + у меня есть еще вопросы, но это потом. Я знаю что это должно быть через регулярные выражения, но я в них не разбираюсь

Надеюсь мне кто поможет.
 
  • Заблокирован
  • #2
Мне нужно сделать такой скрипт который заменяет например
на
и еще может быть такой варианту что некоторый текст уже есть отформатированный bb кодами, чтобы оно стерло форматирования и обратно все исправило
HTML:
[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов
и чтобы получился такой как в примере 2.
Это будет вводиться в форму текст и так перерабатываться, + у меня есть еще вопросы, но это потом. Я знаю что это должно быть через регулярные выражения, но я в них не разбираюсь
Надеюсь мне кто поможет.
мб так:
PHP:
<?php
$str='Название: Соседи
Оригинальное название: Соседи
Год выхода: 2010
Жанр: Мелодрама
Режиссер: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов';
preg_match_all('/^.*?\:/', $str, $match);
$k=count($match[1]);
for($i=0; $i<$k; $i++)
{
$str=preg_replace('/^.*?\:/', "[b]".$match[1][$i]."[/b]", $str);
}
echo $str;
?>
И с :
PHP:
<?php
$str="[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов";
$str=preg_replace('/\[b\]/i', '', $str);
$str=preg_replace('/\[\/b\]/i', '', $str);
?>
P.S. не тестил
 
  • Заблокирован
  • #3
PHP:
<?php
$content = "[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов";
$content=preg_replace('/(\[B\]|\[b\]|\[\/B\]|\[\/b\])/ms',"",$content);
echo(preg_replace('/(^.*?):(.*?$)/ms', "[B]\\1[/B]:\\2", $content));
?>
Непонятно как нужно сделать жирный. bb кодами или хтмл?
 
  • Заблокирован
  • #4
PHP:
<?php
$content = "[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов";
$content=preg_replace('/(\[B\]|\[b\]|\[\/B\]|\[\/b\])/ms',"",$content);
echo(preg_replace('/(^.*?):(.*?$)/ms', "[B]\\1[/B]:\\2", $content));
?>
Непонятно как нужно сделать жирный. bb кодами или хтмл?
бб код как я понял
 
  • Заблокирован
  • #5
Если хтмл-ом, то заменяй строку в моём примере:
PHP:
echo(preg_replace('/(^.*?):(.*?$)/ms', "<b>\\1</b>:\\2", $content));
 
Первый код ничего не изменил
а второй совсем пустая страница
мб так:
PHP:
<?php
$str='Название: Соседи
Оригинальное название: Соседи
Год выхода: 2010
Жанр: Мелодрама
Режиссер: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов';
preg_match_all('/^.*?\:/', $str, $match);
$k=count($match[1]);
for($i=0; $i<$k; $i++)
{
$str=preg_replace('/^.*?\:/', "[b]".$match[1][$i]."[/b]", $str);
}
echo $str;
?>
И с :
PHP:
<?php
$str="[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов";
$str=preg_replace('/\[b\]/i', '', $str);
$str=preg_replace('/\[\/b\]/i', '', $str);
?>
P.S. не тестил


Добавлено через 1 минуту
Все суперр работает
PHP:
<?php
$content = "[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов";
$content=preg_replace('/(\[B\]|\[b\]|\[\/B\]|\[\/b\])/ms',"",$content);
echo(preg_replace('/(^.*?):(.*?$)/ms', "[B]\\1[/B]:\\2", $content));
?>
Непонятно как нужно сделать жирный. bb кодами или хтмл?
2 google.com:
ну все равно как делать жирный, это же можно себе уже изменить)))
Я немножко редактировал твой код, там выводило без переноса строк.
Получилось так:
PHP:
<?php
$content = "[B]Название[/B]: Соседи
Оригинальное название: Соседи
[B]Год выхода[/B]: 2010
Жанр: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов";
$content=preg_replace('/(\[B\]|\[b\]|\[\/B\]|\[\/b\])/ms',"",$content);
$content=preg_replace('/(^.*?):(.*?$)/ms', "[B]\\1[/B]:\\2", $content);
$content = str_replace( "\n", "<br />", $content); 
echo $content;
?>









я написал скрипт и он мне кажется слишком долгим ... Его можно как-то по другому реализовать??

Это checkbox в форме, если ты его выбрал создается cookie и checkbox остается checked, если даже перезагрузить страницу. а если снять флажок и отправить тогда cookie удаляется

PHP:
<?
if (isset($_COOKIE['ua_to_ru'])) $checkbox1 = 'checked';
if (isset($_POST['subm'])) {
if (isset($_POST['ch_ua_to_ru'])) {
setcookie("ua_to_ru",'1',time()+3600);
$checkbox1 = 'checked';
echo "checked";
} else {setcookie ("ua_to_ru", "", time() - 3600); echo "not checked"; $checkbox1 = '';}
}

echo <<<html
<form name="form1" method="post" action="">
  <input type="checkbox" name="ch_ua_to_ru" id="ch_ua_to_ru "$checkbox1>
  <label for="ch_ua_to_ru">флажок</label>
  <input type="submit" name="subm" id="subm" value="Отправить">
</form>
html;
?>
 
А если вставить такое

Название: Соседи
Оригинальное название: Соседи
Год выхода: 2010
Жанр: Мелодрама
Режиссер: Олег Филиппенко
В ролях: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов

Прикол

Инфо:

Получается

PHP:
[B]Название[/B]: Соседи
[B]Оригинальное название[/B]: Соседи
[B]Год выхода[/B]: 2010
[B]Жанр[/B]: Мелодрама
[B]Режиссер[/B]: Олег Филиппенко
[B]В ролях[/B]: Полина Войневич, Сергей Деревянко, Александр Игнатуша, Лидия Вовкун, Евгений Капорин, Игорь Антонов
[B]
Прикол

Инфо[/B]:

как исправить???

код такой

PHP:
$text=preg_replace('/(\[B\]|\[b\]|\[\/B\]|\[\/b\])/ms',"",$text);
$text=preg_replace('/(^.*?):(.*?$)/ms', "[B]\\1[/B]:\\2", $text);
 
Как сделать чтобы оно не ставило тег если до двоеточия есть расстояние например 30 символов. Если в описании есть двоеточие тогда оно все описание до двоеточия сделает жирным.
есть
Шоушенк — название тюрьмы. И если тебе нет еще 30-ти, а ты получаешь пожизненное, то приготовься к худшему: для тебя выхода из Шоушенка не будет!
Станет
HTML:
[B]Шоушенк — название тюрьмы.
И если тебе нет еще 30-ти, а ты получаешь пожизненное, то приготовься к худшему[/B]: для тебя выхода из Шоушенка не будет!
 
не ставило тег если до двоеточия есть расстояние например 30 символов.

PHP:
$text=preg_replace('/(^[^\n]{1,29}):(.*?$)/ms', "[B]\\1[/B]:\\2", $text);

{1,29} - выделяемый BB-кодом текст может содержать от 1 до 29 символов
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху