Ага, понял. Разделить на три части по слову table и обработать середину.
А у меня уже такие мысли были, типа,
таблице присвоить имя id и как-то с помощью get_element... подобраться и обработать текст таблицы... Вобщем запутался...
Спасибо! Сейчас сделаю.
---------- Добавлено 13.06.2013 в 14:27 ----------
Всё получилось!!
Правда разделил на две части по <table , там у меня в ячейках словo portable мелькает... В конце несущественно, ничего нет, только инклуд футера и закрывающие теги.
//Удаляю все переносы на странице. $content=str_replace ("\n", ' ', $content); //Вставляю переносы после конца каждой строки $content = preg_replace("!</tr>(.*?)<tr>!si", "</tr>\n<tr>", $content);
Но здесь надо вручную поправить контент, который не в таблице, ещё шапку и футер. Муторно немного.
Вопрос: можно ли убрать переносы только внутри тегов <table>...</table> ?
izbushka: Для какой индексации? Вы уверены что оно вам надо?
Надо для внутреннего поиска на сайте. Чтоб любое совпадение в любой ячейке выводило всю строку. Чтоб не копаться потом во всей таблице. Вся необходимая инфа уместится в строке.
Сайт небольшой. Поиск организован на PHP с предварительной индексацией всех страниц.
---------- Добавлено 11.06.2013 в 11:19 ----------
izbushka: если хочется именно на php, то алгоритм такойже
Плохо понял. Если не трудно, не могли бы добавить в мой скрипт эту процедуру.
return $links; уже ошибку не пишет. Но и линки не выводит...
В моём случе в цикле foreach массива echo $link; не выводятся.
Если убираю функцию совсем - всё выводится
Где я что упустил?
$site = "/"; echo f1 ($site); $links = array(); function f1 ($site) {
$html = file_get_contents($site);
//echo $html;
/* $html - некий html-код некой страницы, \n - это переход на новую строку (верстальщики иногда это делают) */ //$html = "Текст <a href='page1.html'>ссылка</a> и снова <a hREF ="page2.html" title=''>ссылка</a> конец"; /* Вызываем функцию, которая все совпадения помещает в массив $matches */ preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $html, $matches); $urls = $matches[1]; // Берём то место, где сама ссылка (благодаря группирующим скобкам в регулярном выражении) /* Выводим все ссылки */
$n=0; //$links = array(); for ($i = 0; $i < count($urls); $i++): if (stristr($urls[$i], $site)) {$urls[$i]=str_replace ($site, '', $urls[$i]);} if (stristr($urls[$i],'../')) {$urls[$i]=str_replace ('../', '', $urls[$i]);} if (stristr($urls[$i],'://')) {$urls[$i]=""; }
if ($urls[$i] != '') { $n++; $a = $urls[$i]; //echo $a."<br>"; $links[] = $a; } endfor; return $links; } // КОНЕЦ ФУНКЦИИ
ivan-lev, скрипт по ссылке читает в XAMPP обрывки фраз текста из простеньких pdf. Как я понял, без всяких библиотек. Уже интересно. Но некоторые документы как-то совсем криво читает и мало текста выдаёт.
Библиотеки пока подключить не получается с моим чайниковским подходом.
---------- Добавлено 20.05.2013 в 11:22 ----------
Ага, понял. Разделить на три части по слову table и обработать середину.
А у меня уже такие мысли были, типа,
таблице присвоить имя id и как-то с помощью get_element... подобраться и обработать текст таблицы... Вобщем запутался...
Спасибо! Сейчас сделаю.
---------- Добавлено 13.06.2013 в 14:27 ----------
Всё получилось!!
Правда разделил на две части по <table , там у меня в ячейках словo portable мелькает... В конце несущественно, ничего нет, только инклуд футера и закрывающие теги.
А как это сделать?
Попробовал по другому принципу.
Но здесь надо вручную поправить контент, который не в таблице, ещё шапку и футер. Муторно немного.
Вопрос: можно ли убрать переносы только внутри тегов <table>...</table> ?
Ещё нужна помощь.
Нашёл нужные шаблоны и убрал лишние пробелы, теги и атрибуты.
Но в одном моменте торможу.
В ячейках, внутри тегов <td> встречаются переносы строк.
Типо так:
<td> блабла
бла бла
</td>
Как убрать эти переносы строк внутри ячеек?
Ура!!! На сервере всё работает!!!
Спасибо!!!
*записываем*изменения*в*новый*файл
Попробовал.
Но записалось всё так как и было... Никаких изменений не вижу.
Может у меня в XAMPP \n некорректно работает...
В выводе информации приходилось заменять его на <br>, ибо не переносил строку.
Попробую на сервере...
Для какой индексации? Вы уверены что оно вам надо?
Надо для внутреннего поиска на сайте. Чтоб любое совпадение в любой ячейке выводило всю строку. Чтоб не копаться потом во всей таблице. Вся необходимая инфа уместится в строке.
Сайт небольшой. Поиск организован на PHP с предварительной индексацией всех страниц.
---------- Добавлено 11.06.2013 в 11:19 ----------
если хочется именно на php, то алгоритм такойже
Плохо понял. Если не трудно, не могли бы добавить в мой скрипт эту процедуру.
echo f1 ($site);
Этим я вызываю функцию для обработки страницы $site.
В процессе выполнения функции получаю массив внутри.
А как быть с $links ?
Торможу.
---------- Добавлено 20.05.2013 в 17:28 ----------
Ага... Понял!
$links = f1($site);
Спасибо!!
php.developer,
return $links; уже ошибку не пишет. Но и линки не выводит...
В моём случе в цикле foreach массива echo $link; не выводятся.
Если убираю функцию совсем - всё выводится
Где я что упустил?
Всем спасибо!
Потихоньку пытаюсь разобраться в ситуации...
ivan-lev, скрипт по ссылке читает в XAMPP обрывки фраз текста из простеньких pdf. Как я понял, без всяких библиотек. Уже интересно. Но некоторые документы как-то совсем криво читает и мало текста выдаёт.
Библиотеки пока подключить не получается с моим чайниковским подходом.
---------- Добавлено 20.05.2013 в 11:22 ----------
Установил по ссылкам отсюда http://www.php.net/manual/en/intro.pdf.php
какую-то прогу PDFlib-9.0.0-MSWin32-COM.msi
Это не оно? Ничем не поможет?
Я даже не знаю что такое библиотеки для php, как выглядят и как подключаются.
Но хотелось бы разобраться.