X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Обработка текст
Free_hb
Free_hb
Topic Starter сообщение 15.11.2010, 22:58; Ответить: Free_hb
Сообщение #1


В таблице бд, в определённой ячейке, имеется текст.

Примеры:
[PHP]1. Пока жду я ответа, хочу чтоб ты $xпознал:познала; то, о чём не знаю я.[/PHP]
[PHP]2. И как $xуслышал:услышала; их же ты.[/PHP]

Необходимо выводить отредактированную строку в зависимости от значения $x.
К примеру, если значения $x = 1, то строка принимает вид:
[PHP]Пока жду я ответа, хочу чтоб ты познал то, о чём не знаю я.[/PHP]
Если же, $x = 2, то строка принимает иной вид:
[PHP]Пока жду я ответа, хочу чтоб ты познала то, о чём не знаю я.[/PHP]

Подскажите, как можно это реализовать и возможно ли.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 16.11.2010, 10:16; Ответить: ZhukV
Сообщение #2


Есть несколько вариантов.
(тернарный условный опредатор);
[PHP]$text = "Пока жду я ответа, хочу чтоб ты";
$text .= $x == 1 ? "познал" : 'позналa';
$text .= "то, о чём не знаю я";[/PHP]

Вот еще один вариатнт на мой взляд лучше:
[PHP]$end = $x == 1 ? "a":"";
$text = printf("Пока жду я ответа, хочу чтоб ты познал%s то, о чём не знаю я. ", $end);[/PHP]

А вот код для чайников:
[PHP]
if($x == 1){
$text = "Пока жду я ответа, хочу чтоб ты познал то, о чём не знаю я. ";
}else{
$text = "Пока жду я ответа, хочу чтоб ты познала то, о чём не знаю я. ";
}
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 16.11.2010, 12:04; Ответить: Witu
Сообщение #3


есть маленький вопросик

разница может быть только в окончании?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 16.11.2010, 14:45; Ответить: Witu
Сообщение #4


ладно понятно автор потерялся :)
выложил то что делал недавно для себя

ZhukV, вот что требовалось
[php]
<?php
error_reporting(E_ALL);
$text = "1. Пока жду я ответа, хочу чтоб ты \$xпознал:познала; то, о чём не знаю я. \nИ как \$xуслышал:услышала; их же ты.";

function printText($inputText, $x)
{
$regular = '|\$x(.*)\;|U'; // не трогать
$match = array();
if(preg_match_all($regular, $inputText, $match))
{
for($i = 0; $i < count($match[0]); $i++)
{
$hex = explode(":", $match[1][$i]);
$replace = $x == 1 ? $hex[0] : $hex[1];
$inputText = str_replace($match[0][$i], $replace, $inputText);
}
}
return $inputText;
}

echo printText($text, 2);
?>
[/php]

отлично работает хоть с 1000 строк


PS заменяет вообще все конструкции вида $x_текст_:_текст_;
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 16.11.2010, 16:30; Ответить: ZhukV
Сообщение #5


PS заменяет вообще все конструкции вида $x_текст_:_текст_;

А вот так$x:Это:супер:Это:очень плохо!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 16.11.2010, 18:38; Ответить: Witu
Сообщение #6


ZhukV, внимательно читаем $x _текст_: _текст_;

для модернизации на N символов : нужно дописать всего 4 строчки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
unnormal
unnormal
сообщение 16.11.2010, 18:55; Ответить: unnormal
Сообщение #7


[php]funcrion myfunc($x, $str)
{
if ($x == 1)
$replace = "$1";
elseif ($x == 2)
$relplace = "$2";

preg_replace('#\$(.+):(.+);#iu', $replace, $str);
}[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 16.11.2010, 19:36; Ответить: Witu
Сообщение #8


(unnormal @ 16.11.2010, 20:55) *
[php]funcrion myfunc($x, $str)
{
if ($x == 1)
$replace = "$1";
elseif ($x == 2)
$relplace = "$2";

preg_replace('#\$(.+):(.+);#iu', $replace, $str);
}[/php]



такой вариант в любом случае не рабочий
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 16.11.2010, 21:10; Ответить: ZhukV
Сообщение #9


HTMLandPHP, а что только твой рабочий и все? Ведь ты же у нас всегда самый....
Не критикуй других, не будут тогда критиковать и тебя.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Free_hb
Free_hb
Topic Starter сообщение 17.11.2010, 15:43; Ответить: Free_hb
Сообщение #10


Благодарю всех за ответы.
Но то, что я искал, в полной мере предоставил HTMLandPHP, отдельное спасибо.

В таблице присутствуют достаточно много полней, в которых одна ячейка этих полей всегда содержит текст, но порой текст этот имеет некое обращение, к лицу, которое может быть как женским так и мужским полом.
По этому в содержании таких текстов, имеется синонимы, как для мужского так и для женского лица, как я и показывал в примере.

По этому, нельзя предугадать эти синонимы, они могут быть разными (он:она),(взял:взяла;),(пнул:пнула;),(читал:читала;), известно лишь только то, что все они имеют одну и ту же связку

    $xмужской:женский;


и выбор одного из синонима зависит от значения переменной $x ($x = 1 - вывод первого, $x = 2 - вывод второго)

Функция, предоставленная HTMLandPHP именно это и реализует.
Большое спасибо всем.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) SEO-текст на главной странице сайта и в категориях
5 boltuk 1351 26.3.2024, 21:43
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Можно ли в старый SEO текст вместо старого домена поставить новый?
3 Tutich 1146 22.3.2024, 14:47
автор: Tutich
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыpocket-exchange.com - обмен электронных валют. Низкие курсы! Быстрая обработка заявок!
8 pocket_exchange 9299 12.8.2022, 15:30
автор: pocket_exchange
Горячая тема (нет новых ответов) Текст для сайта на английском языке
33 D007user 17901 26.1.2022, 17:16
автор: D007
Горячая тема (нет новых ответов) Копирайтинг и рерайт: качественный сео-текст по доступной цене!
374 Sostavitel 196484 18.1.2022, 23:46
автор: Sostavitel


 



RSS Текстовая версия Сейчас: 28.3.2024, 14:14
Дизайн