[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: замена текста в SQL
titovff
в SQL храниться много статей и комментариев с фотками. задача - если ссылка на фото внешняя, то неподгружать фото, а написать-внешняя ссылка.
я представляю алгоритм работа так:
1)выбирам в SQL текст который начинается http://какой-то сайт
2) сравниваем с http://мой сайт
3) если отличается то меняем на внешняя ссылка-какой-то сайт
подскажите, плизззз, как это реализовать?
FatCat
if( !stristr($str, 'http://my_site.ru/') )
{
// в тексте $str нет моего сайта, преобразовываю текст
}


_____________
Бесплатному сыру в дырки не заглядывают...
titovff
Цитата (FatCat @ 13.06.2013 - 12:03)
if( !stristr($str, 'http://my_site.ru/') )
{
// в тексте $str нет моего сайта, преобразовываю текст
}

СПАСИБО, но это не совсем то.
пример есть текст сообщения: привет, как дела? у меня супер. вот фото http://123.ru/123.html а еще вот фотка прикольная http://my_site.ru/my_site.html и вот тут я супер получился http://qwert.ru/zzz.html

а в итоге должно получится:
привет, как дела? у меня супер. вот фото внешняя ссылка - 123.ru/123.html а еще вот фотка прикольная http://my_site.ru/my_site.html и вот тут я супер получился внешняя ссылка - qwert.ru/zzz.html
sergeiss
titovff, из твоего вопроса вот что не понятно: ты хочешь сделать это разово, заменив все ссылки в БД, либо ты хочешь делать эти замены непосредственно перед выводом информации.

В принципе, и то, и другое можно делать как средствами ПХП, так и средствами БД.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
titovff
Цитата (sergeiss @ 13.06.2013 - 13:08)
titovff, из твоего вопроса вот что не понятно: ты хочешь сделать это разово, заменив все ссылки в БД, либо ты хочешь делать эти замены непосредственно перед выводом информации.

В принципе, и то, и другое можно делать как средствами ПХП, так и средствами БД.

это будет делаться периодически. раз в неделю. запускаться этот скрипт и все чужие ссылки в sql менять http:// на 'внешняя ссылка'

пока это выглядит так
if( !stristr($str, '1-aa.ru') )
{
// в тексте $str нет моего сайта, преобразовываю текст
mysql_query("UPDATE ИМЯ_ТАБЛИЦЫ SET ИМЯ_ПОЛЯ = REPLACE(ИМЯ_ПОЛЯ, 'http://', 'внешняя ссылка')") ;
}


мы загоняем текст в переменную и проверяем совподает ли с 1-aa.ru. если не совпадает то ищем http:// и меняем на 'внешняя ссылка' . затем переходим на следующую строчку и повторяем.
НО!!! это несовсем правильно, т.к. в одном тексте может быть несколько ссылок. а скрипт проверит, что одна из них совпадает с 1-aa.ru и пропустит весь текст.
sergeiss
Сразу тебе говорю, что надо менять логику. Например, делать эту замену в триггерах вставки и апдейта.

В крайнем случае, делать эти замены в пхп, перед вставкой или апдейтм. Но более правильно будет делать это внутри БД.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
titovff
Цитата (sergeiss @ 14.06.2013 - 07:35)
Сразу тебе говорю, что надо менять логику. Например, делать эту замену в триггерах вставки и апдейта.

В крайнем случае, делать эти замены в пхп, перед вставкой или апдейтм. Но более правильно будет делать это внутри БД.

А можете сам код написать?

Менять нужно в SQL, т.к. пишут люди разные статьи и комменты, а движок joomla.
sergeiss
"Можете код написать" - это за денежки делается. И в мускуле я не возьмусь, наверное. В Постре бы сделал "с ходу".

Если готов заплатить, то сделай тему в разделе "Услуги", и дай ссылку на эту тему.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.