PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (36): В начало « ... 28 29 30 31 32 33 34 [35] 36 »

> Найдено сообщений: 530
vsll Отправлено: 02 Марта, 2011 - 13:43:17 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.           $sphrase = $_GET['stext'];
  3.           $text = nl2br(stripslashes(preg_match_all("~\s(.{50,70})(".$sphrase.")(.{50,70})\s~uisU",$text,$matches)."..."));
  4.           for ( $i = 0 ; $i < count ( $matches [ 0 ]); $i ++) {
  5.           echo "matched: " . $matches [ 0 ][ $i ] . "\n" ;
  6.           echo "part 1: " . $matches [ 1 ][ $i ] . "\n" ;
  7.           echo "part 2: " . $matches [ 3 ][ $i ] . "\n" ;
  8.           echo "part 3: " . $matches [ 4 ][ $i ] . "\n" ;
  9.           }  
  10.           return $text;
  11. }

Да, переменная в регулярном выражении не работает (та же ошибка с utf)
Если так
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $text = nl2br(stripslashes(substr($text, strpos($text, $_GET['stext']) - 50, strlen($text) + 50)."..."));
  3.         return $text;
  4. }
то отображается весь текст,
Если так,
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $text = nl2br(stripslashes(substr($text, strpos($text, $_GET['stext']) - 50, strlen($_GET['stext']) + 50)."..."));
  3.         return $text;
  4. }

то 50 символов до искомого слова и заканчивается поисковой фразой плюс .... В принципе тоже работает
Путём брутального подбора, получено окончательное решение (даже лучше, чем моё первое):
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $text = nl2br(stripslashes("...".substr($text, strpos($text, $_GET['stext']) - 100, strlen($_GET['stext']) + 200)."..."));
  3.         return $text;
  4. }
Тогда 100 симовлов до поисковой фразы и 100 символов после.
Спасибо, OrmaJever
vsll Отправлено: 02 Марта, 2011 - 13:26:04 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Попробовала так:
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.           $sphrase = $_GET['stext'];
  3.           $text = preg_match_all("~\s(.{50,70})($sphrase)(.{50,70})\s~uisU",$text,$matches);
  4.           for ( $i = 0 ; $i < count ( $matches [ 0 ]); $i ++) {
  5.           echo "matched: " . $matches [ 0 ][ $i ] . "\n" ;
  6.           echo "part 1: " . $matches [ 1 ][ $i ] . "\n" ;
  7.           echo "part 2: " . $matches [ 3 ][ $i ] . "\n" ;
  8.           echo "part 3: " . $matches [ 4 ][ $i ] . "\n" ;
  9.           }  
  10.           return $text;
  11. }

Ошибки:
Warning: preg_match_all() [function.preg-match-all]: Compilation failed: invalid UTF-8 string at offset 14 in ...
vsll Отправлено: 01 Марта, 2011 - 21:45:17 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
то что после for - это точно скопированное описание, другого там нет, я не знаю что нужно изменять в этой функции, чтобы было TRUE, а не как у меня во всех найденных результатах фрагмент был равен 0 Это пока сложно для меня
vsll Отправлено: 01 Марта, 2011 - 21:03:34 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
PHP:
скопировать код в буфер обмена
  1. function search_striphtmlbbcodes($text) {
  2.         $text = preg_replace("[\[(.*?)\]]", "", $text);
  3.         $text = preg_replace("<\<(.*?)\>>", "", $text);
  4.         return $text;
  5. }
  6.  
  7. function search_textfrag($text) {
  8.         $text = nl2br(stripslashes(substr(stristr($text, $_GET['stext']), 0, 500)."..."));
  9.         return $text;
  10. }
vsll Отправлено: 01 Марта, 2011 - 20:56:36 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Вот это работает:
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $text = nl2br(stripslashes(substr(stristr($text, $_GET['stext']), 0, 500)."..."));
  3.         return $text;
  4. }

Выдаёт фрагмент с первой попавшейся поисковой фразы и последующие за ней 500 символов.
ALEN А как с preg_match_all всё это сделать, так и не догнала, если не сложно напиши пару строчек на эту тему
vsll Отправлено: 28 Февраля, 2011 - 12:56:58 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Что не так?
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $sphrase = $_GET['stext'];
  3.         $text = nl2br(stripslashes(preg_match_all("~\s(.{50,70})($sphrase)(.{50,70})\s~uisU",$text,$matches)."..."));
  4.         for ( $i = 0 ; $i < count ( $matches [ 0 ]); $i ++) {
  5.             echo "matched: " . $matches [ 0 ][ $i ] . "\n" ;
  6.             echo "part 1: " . $matches [ 1 ][ $i ] . "\n" ;
  7.             echo "part 2: " . $matches [ 3 ][ $i ] . "\n" ;
  8.             echo "part 3: " . $matches [ 4 ][ $i ] . "\n" ;
  9.         }  
  10.         return $text;
  11. }


И в итоге 0 (ничего не выводит)
vsll Отправлено: 27 Февраля, 2011 - 20:47:11 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Oh my God! А вы наверное хирург по совместительству. Я не понимаю как задать это регулярное выражение - шаблон, вчера пробовала какойто делиметер неизвестный короче и всё, я не программист даже по совместительству и вся эта терминология для меня как традиционный китайский
Ну вот, например,
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $text = nl2br(stripslashes(preg_match_all("~\s(.{50,70})($_GET['stext'])(.{50,70})\s~uisU",$text,$match)."..."));
  3.         echo $match[1][0]."<b>".$match[2][0]."</b>".$match[3][0];
  4.         return $text;
  5. }

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
вообще ничего нет
vsll Отправлено: 27 Февраля, 2011 - 18:33:43 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Вот это работает
PHP:
скопировать код в буфер обмена
  1. function search_textfrag($text) {
  2.         $text = nl2br(stripslashes(str_replace(" ","+",$_GET['stext'])."..."));
  3.         return $text;
  4. }

спасибо http://www[dot]project09[dot]com/tutoria[dot][dot][dot]P/google-search/
но показывает только искомое слово (фразу), надо ещё сделать чтобы 150 символов до и после и не получиться, КТО ЗНАЕТ помогите!
vsll Отправлено: 26 Февраля, 2011 - 21:44:15 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Завтра попробую, может до завтра кто-нибудь найдётся с подобной и уже решённой проблемой, если что, ссылка на описание функции http://php.su/functions/?preg_match
vsll Отправлено: 26 Февраля, 2011 - 21:22:53 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
preg_match_all
Именно по этой штуке я к вам из гугла и попала, а как её задать не знаю, в одном скрипте какогото freeware поисковика видела ещё и вот такое str_replace. Что там нужно в скобках писать? извините за тупой вопрос.
vsll Отправлено: 26 Февраля, 2011 - 21:06:32 • Тема: Отображение результатов поиска по сайту • Форум: Напишите за меня, пожалуйста

Ответов: 21
Просмотров: 182
Не получается, модуль работает по принципу индексации страниц и встретив ключевое слово, выдаёт ссылку на саму страницу и по желанию: либо весь текст, либо кусок текста, а как задать строку в которой находиться ключевое слово, не понятно, по крайней мере мне, пока вот, что получается на данный момент:
PHP:
скопировать код в буфер обмена
  1.       function search_textfrag($text) {
  2.               $text = nl2br(stripslashes(substr($str, strpos($_GET['stext'], 1) - 50, strlen($str)+50)."..."));
  3.               return $text;
  4.       }


Undefined variable: str
vsll Отправлено: 26 Февраля, 2011 - 20:55:07 • Тема: Вроде и вопрос простой, но • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 231
Полковников Илья пишет:
Есть знакомый который балуется почтовиками в частности wmmail.ru. И он долго меня подкалывал тем что я учу php, а какойнить реально полезный скрипт написать не могу. Вот я и решил доказать ему обратное.
Цель понятна, хотя ALEN прав, возможно это программа будущего, дерзай Полковник. Приношу извинения, только не баньте меня за флуд, я свой вопрос ещё не решила
vsll Отправлено: 26 Февраля, 2011 - 20:50:54 • Тема: Как сделать ЧПУ ссылку • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 74
Часто наблюдала такое, удобная штука, особенно если цитировать ссыку на другом ресурсе с ограничением по количеству символов в ячейке бд Спасибо за ликбез
vsll Отправлено: 26 Февраля, 2011 - 20:42:38 • Тема: Вроде и вопрос простой, но • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 231
Да это уже за пределами тематики форума, элементарная гигиена, я например вообще антивирусами не пользуюсь, достаточно фаервола, и дополнительной учётной записи для общения с сомнительными ресурсами (жалко мне системной памяти)
vsll Отправлено: 26 Февраля, 2011 - 20:32:39 • Тема: Как сделать ЧПУ ссылку • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 74
Я уже поняла, а всётаки пользуясь случаем, что такое ЧПУ ссылка?

Страниц (36): В начало « ... 28 29 30 31 32 33 34 [35] 36 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB