[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск по сайту
freed-master
Есть сайт с каталогами. Все страницы типа: *.php
Возможен ли поиск по страницам сайта и вывод результата в таблицу, ну или хотябы что б открывалась страница, содержащая искомое слово?
Убедительная просьба: НЕ надо советовать переходить на БД!



Спустя 31 минута, 51 секунда (6.02.2009 - 20:21) FatCat написал(а):
Есть системы поиска по сайту, которым безразлично, где сам сайт хранит информацию. Но эти системы свои индексы хранят БД.

Образец можно посмотреть к примеру на http://mammoleptin.ru/ справа в шапке.

Спустя 1 час, 48 минут, 46 секунд (6.02.2009 - 22:10) kirik написал(а):
freed-master почему нельзя юзать сторонний поиск? Типа гугла или яндекса..

Спустя 22 минуты, 26 секунд (6.02.2009 - 22:33) freed-master написал(а):
В смысле сторонний поиск?..

Спустя 7 минут, 3 секунды (6.02.2009 - 22:40) freed-master написал(а):
FatCat, можете порекомендовать какую-нибудь конкретную систему?

Спустя 8 минут, 20 секунд (6.02.2009 - 22:48) kirik написал(а):
Цитата (freed-master @ 6.02.2009 - 14:33)
В смысле сторонний поиск?..

Типа google adsense или яндекс xml. Тоесть поиск будет осуществляться по базе гугла (яндекса) по проиндесированным страницам вашего сайта.

Спустя 30 минут, 9 секунд (6.02.2009 - 23:18) twin написал(а):
А что, сайт очень большой? Ведь впринципе совсем не сложно сделать поисковик...

Спустя 1 час, 10 минут, 25 секунд (7.02.2009 - 00:28) freed-master написал(а):
Ну относительно не маленький. Хотите могу ссылку кинуть.

Цитата
впринципе совсем не сложно сделать поисковик...

Если только с Вашей помощью. Я честно говоря совсем не представляю как это можно осуществить.

Спустя 16 минут, 51 секунда (7.02.2009 - 00:45) twin написал(а):
Если сайт большой, то лучше сделать индексный файл и по нему искать. Там все страницы .php? То есть и контент тоже в этих файлах? Вообще, какая структура?

Спустя 15 минут, 50 секунд (7.02.2009 - 01:01) FatCat написал(а):
Цитата (freed-master @ 6.02.2009 - 22:40)
можете порекомендовать какую-нибудь конкретную систему?

Не я ставил; не знаю, как оно зовется, но могу снять копию с сайта и выложить куда-нибудь.
Свернутый текст
/*
* This code makes a system call to Perl search script.
* Output of search script will be sent to browser.
*
* Put this file to any directory with permissions to run
* PHP scripts (rename file if necessary). Before usage
* set two variables:
*
* 1) $path_to_risearch - path to perl search script (use absolute
* path from disk root directory or relative path).
*
* 2) $path_to_perl - path to perl on your server (simple "perl"
* should work in most cases, otherwise ask your admin).
*
* You can place your own PHP code before or after this function
* (for example header or footer inclusion). Don't forget
* to clean header and footer sections in RiSearch template file
* in this case.
*/


Сразу скажу, что я в этой искалке не ковырялся, поэтому на любые вопросы не отвечу.

Спустя 12 часов, 21 минута, 35 секунд (7.02.2009 - 13:23) leo написал(а):
Вот ссылка где можно посмотреть как ставить поиск от Google
http://www.evgeniypopov.com/magazine.php?mag=38

Спустя 16 минут, 9 секунд (7.02.2009 - 13:39) LoneCat написал(а):
Вот вам! tongue.gif

PHP
<?php

/**
 * Класс фильтра, наследует от абстрактного SPL-класса FilterIterator
 *
 */
class SearchFilesFilterIterator extends FilterIterator {

    /**
     * Внутреннее поле данных, в котором хранится текущая поисковая строка
     * Которая будет использована при итерации по элементам
     *
     * @var string
     */
    protected $sQuery = '';

    /**
     * Метод проверки подходит-ли элемент по условию
     * Реализовать этот метод обязывает абстрактный класс-родитель
     *
     * @return boolean
     */
    public function accept() {
        if($this->current()->isFile()) { // Проверяем что это файл
            if(strrchr($this->current()->getFilename(), '.') === '.php') { // Проверяем что расширение - php
                $sContent = file_get_contents($this->current()->getPathname()); // Получаем содержимое файла
                if(strpos($sContent, $this->sQuery)) { // Ищем искомую строку внутри содержимого
                    return true; // Возвращаем труъ, так как этот файл нам подходит
                }
            }
        }
        return false; // Возвращаем фолсе, так как одно из условий не было выполнено
    }

    /**
     * Метод установки поисковой строки
     *
     * @param string $sQuery - поисковая строка
     * @return SearchFilesFilterIterator - объект возвращает сам себя
     */
    public function setQuery($sQuery) {
        $this->sQuery = (string)$sQuery;
        return $this;
    }

}

// Создаем ресурсивный итератор по файловой системе, это встроенный класс, входящий в состав SPL
// Параметром передаем папку, в которой находится сам скрипт
// Этот итератор будет возвращать информацию о всех найденных файлах и директориях
// А также возвращать дочерние итераторы для директорий в указанной папке
$oDirectory = new RecursiveDirectoryIterator(dirname(__FILE__));

// Создаем итератор, который разворачивает рекурсивные итераторы в планарные, это встроенный класс, входящий в состав SPL
// Параметром передаем созданный выше рекурсивный итератор
// Он избавит нас от необходимости самим разворачивать итератор RecursiveDirectoryIterator
// В итоге этот итератор будет возвращать информацию о всех найденных файлах в какой-бы то ни было папке подряд
$oFiles = new RecursiveIteratorIterator($oDirectory);

// Создаем фильтрующий итератор, он будет выводить только те элементы, что соответсвуют условию
// В нашем случае - наличию в тексте искомой строки
// Параметром передаем созданный выше планарный итератор
$oFilter = new SearchFilesFilterIterator($oFiles);

foreach(
$oFilter->setQuery('искомая строка') as $oItem) {
    // В каждом цикле итерации получаем объект с информацией о файле
    // Объект вида: http://www.php.net/~helly/php/ext/spl/classSplFileInfo.html
    echo $oItem->getPathname()."<br />";
}


Ну и для тех кому комментарии все равно побоку smile.gif

PHP
<?php

class SearchFilesFilterIterator extends FilterIterator 
{

    protected $sQuery = '';

    public function accept() {
        if($this->current()->isFile()) {
            if(strrchr($this->current()->getFilename(), '.') === '.php') {
                $sContent = file_get_contents($this->current()->getPathname());
                if(strpos($sContent, $this->sQuery)) {
                    return true;
                }
            }
        }
        return false;
    }

    public function setQuery($sQuery) {
        $this->sQuery = (string)$sQuery;
        return $this;
    }

}

$oDirectory = new RecursiveDirectoryIterator(dirname(__FILE__));
$oFiles = new RecursiveIteratorIterator($oDirectory);
$oFilter = new SearchFilesFilterIterator($oFiles);

foreach(
$oFilter->setQuery('искомая строка') as $oItem) {
    echo $oItem->getPathname()."<br />";
}


Но вообще это на правах утренней зарядки для мозга smile.gif автор вы всетки не правы, базы данных все используют не потому что такие снобы, а потому что это реально оправданно, и такой поиск по скорости будет уступать нормальному поиску в БД в сотни и тысячи раз, нет, безусловно можно написать достаточно оптимальный алгоритм поиска по файлам, но это получится попытка самому реализовать то, что давно есть в БД.
З.Ы. Внешний поиск от яндекся и гугля - тоже впринципе достаточно оптимальный вариант.

Спустя 1 час, 7 минут, 38 секунд (7.02.2009 - 14:47) twin написал(а):
Ну не звер? smile.gif
Человек не знает что такое поиск от гугля, а ему ООП...

Вот по проще тоже самое:

#Устанавливаем неограниченное время, скрипт может долго искать
set_time_limit(0); 

$dir  =  @$_POST['search_dir']; 

function find_new($dir) 
{  
      
$new_dir = null; 
# Oткрываем директорию     
$dir_files = opendir($dir);
# В цикле читаем её содержимое     
    while(false !== ($file = readdir($dir_files))) 
    {  # Если не служебная запись, складываем в массив путь
        if($file != '.' && $file != '..')  
        $new_dir[] = $dir."/".$file; 
    }   
        # Если каталог не пустой      
        if($new_dir) 
        # вынимаем содержимое массива
        foreach($new_dir as $check ) 
        { 
        # Если это файл, и у него расширение php
              if(is_file($check) && strrchr($check, ".") == ".php" && 
        # читаем содержимое и ищем слово(а). Усли есть - выводим путь 
             strpos(file_get_contents($check),$_POST['search_text']) !== false ) 
              echo $check."<br>";  
        # если директория - рекурсия. Запускаем функцию по новой с путем до директории. См. с начала                    
              elseif(is_dir($check)) 
             find_new($check); 
        } 
} 
if(isset($_POST['search_text']) && isset($_POST['ok']))     
echo find_new($dir);     
?> 
<form action="?" method="post"> 
Где искать<br /> 
<input name="search_dir" type="text" /><br /> 
Что искать<br /> 
<input name="search_text" type="text" /><br />  
<input name="ok" type="submit" />  
</form>

Спустя 1 час, 57 минут, 50 секунд (7.02.2009 - 16:44) FatCat написал(а):
Цитата (twin @ 7.02.2009 - 14:47)
PHP
$dir=$_POST['search_dir'];

Лучше
PHP
if(isSet($_POST['search_dir']))$dir  =  $_POST['search_dir'];


Кстати, на удивление быстро ищет.
Сейчас проверил на директории 2700 файлов общим весом 77 Мб - под денвером меньше двух секунд...
Как-то даже странно; у меня ноутбучный винчестер никогда быстрее 20 Мб/сек не читал...

Спустя 5 минут (7.02.2009 - 16:49) freed-master написал(а):
twin, выводятся только пути к файлам. как можно сделать что-б выводилось найденное содержимое или открывалась страница с искомым словом?

Решил попробовать систему Яndex.Server, предлагается скачать дистрибутивы для разных ОС. У меня стоит винда, а хостинг на линуксе, подскажите что мне качать?

Спустя 10 минут, 45 секунд (7.02.2009 - 17:00) LoneCat написал(а):
Цитата (freed-master @ 7.02.2009 - 17:49)
twin, выводятся только пути к файлам. как можно сделать что-б выводилось найденное содержимое или открывалась страница с искомым словом?

Решил попробовать систему Яndex.Server, предлагается скачать дистрибутивы для разных ОС. У меня стоит винда, а хостинг на линуксе, подскажите что мне качать?

Дык а какая страница, и мой вариант, и вариант twin'а ищут все возможные совпадения, какое из них открывать, если их несколько? smile.gif

Спустя 6 минут, 42 секунды (7.02.2009 - 17:07) freed-master написал(а):
А возможно ли реализовать такую идею:

Инфо находится в "контейнере", если находится слово из этого "контейнера", то он целиком отображается на странице результатов поиска?

Спустя 6 минут, 54 секунды (7.02.2009 - 17:14) twin написал(а):
Цитата
ЛучшеPHP
if(isSet($_POST['search_dir']))$dir  =  $_POST['search_dir'];
Да, поторопился. Непростительный ляп.

Цитата
twin, выводятся только пути к файлам. как можно сделать что-б выводилось найденное содержимое или открывалась страница с искомым словом?
Если постараться, то на php можно все сделать, кроме разве что детей... Задачу поконкретнее опиши. Какие файлы, какая структура, что нужно вынуть и в каком виде. А то мы так до второго пришествия по буковке будем перебирать.

Спустя 7 минут, 24 секунды (7.02.2009 - 17:21) LoneCat написал(а):
Цитата (freed-master @ 7.02.2009 - 18:07)
А возможно ли реализовать такую идею:

Инфо находится в "контейнере", если находится слово из этого "контейнера", то он целиком отображается на странице результатов поиска?

Возможно smile.gif всё возможно, было-бы желание smile.gif
Навскидку как-то так:
PHP
# Если это файл, и у него расширение php
if(is_file($check) && strrchr($check'.') === '.php') {
    
$content file_get_contents($check);
    
// Ищем начало контейнера
    
$start strpos($content'<!-- Start -->'); 
    if(
$start !== false) {
        
// Ищем конец контейнера
        
$end strpos($content'<!-- End -->'$start);
        if(
$end !== false) {
            
$container substr($content$start$end $start);
            
// Проверяем наличие поисковой строки
            
if(strpos($container$_POST['search_text'])) {
                
// Выводим содержимое контейнера
                
echo $container;
            }
        }
    }
} elseif(
is_dir($check)) {
    
find_new($check);
}

Спустя 14 минут, 53 секунды (7.02.2009 - 17:36) twin написал(а):
Там наверное нужно от тегов еще очистить... Но вообще этот скрипт нужно доработать, запустить один раз и сделать индексный файл. или несколько. А в них искать уже. Зачем такую кучу кода перелопачивать, да и ведь наверняка не во всех файлах контент есть... Это же сколько ресурса, мама рОдная...

Спустя 5 минут, 18 секунд (7.02.2009 - 17:41) freed-master написал(а):
Цитата
Если постараться, то на php можно все сделать, кроме разве что детей... Задачу поконкретнее опиши. Какие файлы, какая структура, что нужно вынуть и в каком виде. А то мы так до второго пришествия по буковке будем перебирать.


Есть сайт канцтоваров. Все страницы с расширением пхп. Страницы с товарами (каталоги) находятся в двух папках: econom и business.

Каждый каталог содержит:
Код
<table cellspacing="0" cellpadding="0">
<?php include "wares.php";?>


wares.php у каждого каталога называется по разному и содержит инфо о товарах одного вида, например:

Код
<tr>
<?php
$code = "001";
$ware = "Карандаш деревянный";
$description = "Чернографитный";
$src = "001.gif";
$producer = "Производитель (Страна)";
include ("../inc_ware.php");
?>


inc_ware.php у всех одинаковый:

Код
<td rowspan="2" id="wares_img"><img src="images/<?php echo $src; ?>" alt="<?php echo $description; ?>" border="0"></td>
<td colspan="2">
<h1><?php echo $ware; ?></h1>
<p><?php echo $description; ?></p>
<p>Производитель: <?php echo $producer; ?></p>
<p>Артикул: <?php echo $code; ?></p>
<hr /></td>
</tr>
<tr>
<td align="right">
<?php include ("inc_form.php");?>


Было бы хорошо если результат выводился:
Код
<table cellspacing="0" cellpadding="0">
<?php include "wares.php"; ?>

Спустя 7 минут, 23 секунды (7.02.2009 - 17:49) freed-master написал(а):
че-то коряво сообщения редактируются?

Спустя 7 минут, 54 секунды (7.02.2009 - 17:57) freed-master написал(а):
Есть сайт канцтоваров. Все страницы с расширением пхп. Страницы с товарами (каталоги) находятся в двух папках: econom и business.

Каждый каталог содержит:
Код
<table cellspacing="0" cellpadding="0">
<?php include "wares.php"; ?>
</table>


wares.php у каждого каталога называется по разному и содержит инфо о товарах одного вида, например:

Код
<tr>
<?php
$code = "001";
$ware = "Карандаш деревянный";
$description = "Чернографитный";
$src = "001.gif";
$producer = "Производитель (Страна)";
include ("../inc_ware.php"); ?>
</tr>


inc_ware.php у всех одинаковый:

Код
<td rowspan="2" id="wares_img"><img src="images/<?php echo $src; ?>" alt="<?php echo $description; ?>" border="0"></td>
<td colspan="2">
<h1><?php echo $ware; ?></h1>
<p><?php echo $description; ?></p>
<p>Производитель: <?php echo $producer; ?></p>
<p>Артикул: <?php echo $code; ?></p>
<hr /></td>
</tr>
<tr>
<td align="right">
<?php include ("inc_form.php"); ?>
</td>


Было бы хорошо если результат выводился:
Код
<table cellspacing="0" cellpadding="0">
<?php include "wares.php"; ?>
</table>

Спустя 2 минуты, 42 секунды (7.02.2009 - 17:59) freed-master написал(а):
Я в шоке, он все в кучу слепливает! Короче, вот сайт посмотрите пожалуйста сами: www.klyaksa.biz.ua

Спустя 10 секунд (7.02.2009 - 17:59) FatCat написал(а):
Для смеси кодов лучше пользоваться кнопкой user posted image

Кнопка user posted image только для корректных php-кодов, без блоков HTML.

Спустя 3 минуты, 29 секунд (7.02.2009 - 18:03) freed-master написал(а):
Пасиб, учту!

Спустя 6 минут, 10 секунд (7.02.2009 - 18:09) freed-master написал(а):
Цитата (freed-master @ 7.02.2009 - 18:57)
Есть сайт канцтоваров. Все страницы с расширением пхп. Страницы с товарами (каталоги) находятся в двух папках: econom и business.

Каждый каталог содержит:
Код
<table cellspacing="0" cellpadding="0">
<?php include "wares.php"; ?>
</table>


wares.php у каждого каталога называется по разному и содержит инфо о товарах одного вида, например:

Код
<tr>
<?php
$code = "001";
$ware = "Карандаш деревянный";
$description = "Чернографитный";
$src = "001.gif";
$producer = "Производитель (Страна)";
include ("../inc_ware.php"); ?>
</tr>


inc_ware.php у всех одинаковый:

Код
<td rowspan="2" id="wares_img"><img src="images/<?php echo $src; ?>" alt="<?php echo $description; ?>" border="0"></td>
<td colspan="2">
<h1><?php echo $ware; ?></h1>
<p><?php echo $description; ?></p>
<p>Производитель: <?php echo $producer; ?></p>
<p>Артикул: <?php echo $code; ?></p>
<hr /></td>
</tr>
<tr>
<td align="right">
<?php include ("inc_form.php"); ?>
</td>


Было бы хорошо если результат выводился:
Код
<table cellspacing="0" cellpadding="0">
<?php include "wares.php"; ?>
</table>

Вот, учел! Вроде все ровно.

Спустя 6 минут, 3 секунды (7.02.2009 - 18:15) twin написал(а):
Да ладно, ясно и так.
Кодировка какая у сайта?

Спустя 3 минуты, 29 секунд (7.02.2009 - 18:19) freed-master написал(а):
windows-1251

Спустя 1 час, 7 минут, 26 секунд (7.02.2009 - 19:26) twin написал(а):
Так, я запутался. Давайте по порядку.
1. Директории econom и business где находятся?
2. wares.php у каждого каталога называется по разному то есть на каждый товар, book.php pencil.php или в каждом файле есть разные товары?
3. Вывести надо все файлы, в которых есть "Чернографитный" к примеру?
4. Если да, то в каком виде?

Спустя 57 минут, 17 секунд (7.02.2009 - 20:23) freed-master написал(а):
1. Папки econom и business находятся в корне.
2. Не совсем так. Расклад такой:

- Офисные инструменты (категория 1)
- Принадлежности для письма (категория 2)
- - Ручки (подкатегория 2.1)
- - Карандаши (подкатегория 2.2)
- - - (Перечень товаров подкатегории 2.2)
- Товары для школы (категория 3)

Описание:
Есть разные категории товаров. У каждой категори есть подкатегории и каждая из подкатегорий содержит перечень товаров. Этот перечень и содержится в wares.php:
Код

<tr><?php
$code = "001";
$ware = "Карандаш деревянный";
$description = "Чернографитный";
$src = "001.gif";
$producer = "Сунь-Вынь (Япония)";
include ("../inc_ware.php"); ?>
</tr>
<tr>
<?php
$code = "002";
$ware = "Карандаш пластиковый";
$description = "Зеленый в полосочку";
$src = "002.gif";
$producer = "Сунь-Вынь (Япония)";
include ("../inc_ware.php"); ?>
</tr>


3. Вывести нужно инфо про товары, содержащие в названии или описании искомое слово.

4. Желательно в таком же как и на странице с перечнем товаров, т.е. в таблицу типа:
Код
<table cellspacing="0" cellpadding="0">
<td rowspan="2" id="wares_img"><img src="images/<?php echo $src; ?>" alt="<?php echo $description; ?>" border="0"></td>
<td colspan="2">
<h1><?php echo $ware; ?></h1>
<p><?php echo $description; ?></p>
<p>Производитель: <?php echo $producer; ?></p>
<p>Артикул: <?php echo $code; ?></p>
<hr /></td>
</tr>
<tr>
<td align="right">
<?php include ("inc_form.php"); ?>
</td>
</table>

Спустя 32 минуты, 30 секунд (7.02.2009 - 20:56) twin написал(а):
Еще больше запутался. Мне не интересно, какие где категории. Мне нужна структура сайта. Вот:
1. wares.php это один файл, в нем все товары? Или на каждую категорию есть такой файл?
2. $code = "002"; это и есть подкатегория или это артикул товара?
3. Вывести нужно инфо про товары, Вот это что? это чёрнографитный или есть еще где то информация?
4. Как много предполагается товаров на запрос?

Спустя 1 час, 20 минут, 37 секунд (7.02.2009 - 22:16) freed-master написал(а):
1. У каждой категори есть подкатегории. Каждая подкатегория содержит свой wares.php
2. $code = "002"; - это артикул.
3. Результат поиска:
Код

<table>
<!-- Инфо о первом найденном товаре -->
<tr>
<td><img src="images/<?php echo $src; ?>" alt="<?php echo $description; ?>" border="0"></td>
<td colspan="2">
<?php echo $ware; ?><br />
<?php echo $description; ?><br />
<?php echo $producer; ?><br />
<?php echo $code; ?>
</td>
</tr>
<!-- Инфо о втором найденном товаре -->
<tr>
<td><img src="images/<?php echo $src; ?>" alt="<?php echo $description; ?>" border="0"></td>
<td colspan="2">
<?php echo $ware; ?><br />
<?php echo $description; ?><br />
<?php echo $producer; ?><br />
<?php echo $code; ?>
</td>
</tr>
</table>

4. В зависимости от запроса. Если будут искать типа "карандаш" товаров может быть около 50 (ну, это я с запасом:), при конкретном запросе типа "карандаш зеленый в полосочку" - возможно 1-3 товара.

Спустя 15 минут, 19 секунд (7.02.2009 - 22:32) twin написал(а):
То есть как я понял, надо не просто вывести содержимое найденного файла (wares.php), но еще сделать из него выборку? А как они то расположены, файлы эти? Подкатегория, это что, папка такая или как устроено то я не пойму. Если у файлов названия одинаковые, значит они должны быть как то структурированы по директориям...

Спустя 2 часа, 36 минут, 36 секунд (8.02.2009 - 01:08) freed-master написал(а):
Есть две папки (группы) эконом и бизнес. В этих папках не существует подпапок, все вайлы в одной куче. В каждой из этих двух папок свои категории и подкатегории. У подкатегорий свои файлы с товарами и эти файлы называются по разному.

На счет выборки, да получается нужно ее сделать.

Спустя 24 минуты, 26 секунд (8.02.2009 - 01:33) twin написал(а):
Нет, так не пойдет. Называй вещи своими именами. Я не знаю что такое категория и подкатегория. Такого понятия в php нет. Мне нужна схема. Прям по порядку. Пока ясно только это:

Код
                          Корень
                           /  \
                      econom   business    
Дальше все покрыто мраком. Где что искать я не понимаю пока.

Спустя 4 минуты, 21 секунда (8.02.2009 - 01:37) LoneCat написал(а):
2 twin & freed-master:
Я завидую вашему терпению, честно smile.gif

Спустя 6 часов, 17 минут, 20 секунд (8.02.2009 - 07:54) Sylex написал(а):
Цитата (LoneCat @ 8.02.2009 - 04:37)
2 twin & freed-master:
Я завидую вашему терпению, честно smile.gif

я тоже! smile.gif

Спустя 2 часа, 1 минута, 18 секунд (8.02.2009 - 09:56) freed-master написал(а):
Код
Корень\
- php-файлы        (Корень\php-файлы)
- econom\
  - php-файлы      (Корень\econom\php-файлы)
- business\
  - php-файлы      (Корень\business\php-файлы)

Так лучше?
Искать нужно в папках econom и business (ну, других собственно и нету)

Спустя 29 минут, 4 секунды (8.02.2009 - 10:25) twin написал(а):
Так, немного прояснилось. Все таки wares.php это разные файлы с разными названиями. Правильно? Если да, то нужен один целиком.

Спустя 1 час, 31 минута, 17 секунд (8.02.2009 - 11:56) freed-master написал(а):
Я бы тоже очень хотел один целиком! Но тогда нужно чтоб из этого единого файла товары каждой категории "выдергивались" в нужные каталоги. Мне в голову приходит только использование "контейнеров" для опр. вида товаров, тип:
Код
wares.php

# Начало контейнера с карандашами
# Все товары из этого контейнера инклюдится на страницу pencil.php
<table id="pencil">
<td>
<?php
$code = "001";
$ware = "Карандаш деревянный";
$description = "Чернографитный";
$src = "001.gif";
$producer = "Сунь-Вынь (Япония)";
include ("../inc_ware.php"); ?>
</td>
<td>
...и т.д.
</table>
# Конец контейнера с карандашами

# Начало контейнера с ручками
# Все товары из этого контейнера инклюдится на страницу pen.php
<table id="pen">
<td>
<?php
$code = "002";
$ware = "Ручка пластиковая";
$description = "Зеленая в полосочку";
$src = "002.gif";
$producer = "Сунь-Вынь (Япония)";
include ("../inc_ware.php"); ?>
</td>
<td>
...и т.д.
</table>
# Конец контейнера с ручками

Только я не знаю как именно выдергивать эти контейнера...

Спустя 21 минута (8.02.2009 - 12:17) twin написал(а):
Я не понял, это еще не работает что ли? Я знаю что такое контейнер. Я работал на контейнерной станции. Это такой большой железный ящик, куда можно засунуть все что угодно. В мануале по php нет ничего про железные ящики. Так же там нет ничего про категории и подкатегории. А есть там каталоги и файлы. Мне нужно понять, как работает сайт. Когда, что и куда подключается, что находится в подключаемых файлах. Полностью, а не обрывками. Если таковых еще нет, то тогда гораздо проще пересмотреть структуру сайта и сделать простой и эфективный поиск. А если файлы уже есть, то покажите мне один целиком. Иначе нельзя разработать алгоритм поиска.

Спустя 36 минут, 12 секунд (8.02.2009 - 12:53) freed-master написал(а):
В архиве три файла:

1) writing_pen_roller.php - собственно страница, в которую все собирается
2) inc_writing_pen_roller.php - непосредственно инфо о товарах
3) inc_ware.php - оболочка товара

Таких writing_pen_roller.php много, называются по разному и у каждо свои inc_writing_pen_roller.php, тоже с разными названиями.

Спустя 18 минут, 54 секунды (8.02.2009 - 13:12) twin написал(а):
Воооооот. Наконец то. Щас посмотрим.

Кстати, на форуме RAR исполняется. Не скачивается. Вот это надо бы добавить в настройки:
application/octet-stream rar r00 r01 r02 r03

Спустя 8 минут, 32 секунды (8.02.2009 - 13:21) freed-master написал(а):
Че то не вьехал, в какие настройки?

Спустя 1 минута, 7 секунд (8.02.2009 - 13:22) LoneCat написал(а):
Цитата (freed-master @ 8.02.2009 - 14:21)
Че то не вьехал, в какие настройки?

Это про форум, это не про твои скрипты и настройки smile.gif

Спустя 1 день, 1 час, 52 минуты, 20 секунд (9.02.2009 - 15:14) twin написал(а):
Цитата
Че то не вьехал, в какие настройки?

Это я не тебе. Извиняюсь за задержку smile.gif. Дела-с...
Вот такая схема. Этот скрипт нужно запустить один раз, он создаст индексный файл, где будет весь контент с адресами, по которым его искать. Ну а поисковик по одному файлу поди осилиишь?
PHP
<?php  
set_time_limit
(0); 

function 
find_new($dir
{  
      
$new_dir null

$dir_files opendir($dir);
   
    while(
false !== ($file readdir($dir_files))) 
    { 
        if(
$file != '.' && $file != '..')  
        
$new_dir[] = $dir."/".$file
    }    
        if(
$new_dir
        foreach(
$new_dir as $check 
        { 
              if(
is_file($check) && strrchr($check".") == ".php)
             { 
             
             
$arr file($check);
                 foreach(
$arr as $content )
                 { 
             
preg_match_all("#ware\s*=\s*\"([^\"]+?)\"#i",$content$out1);
             
preg_match_all("#description\s*=\s*\"([^\"]+?)\"#i",$content$out2);
             
$str $out1[1][0].$out2[1][0];         
                      if(
$str)    
                      
file_put_contents("index.txt", @file_get_contents("index.txt")."|".$check."|".$str."\r\n");

                  }
             }                 
             elseif(
is_dir($check))
             { 
             
find_new($check);
             } 
        } 

if(isset(
$_POST['search_dir']) && isset($_POST['ok']))     
find_new($_POST['search_dir']);     
 
?>    
<form action="?" method="post"> 
Где искать<br /> 
<input name="search_dir" type="text" /><br />   
<input name="ok" type="submit" />  
</form>

Спустя 1 час, 45 минут, 17 секунд (9.02.2009 - 17:00) freed-master написал(а):
Цитата
Ну а поисковик по одному файлу поди осилиишь?


unsure.gif
Врядли,.. я только-только-только пытаюсь начинать осваивать пхп, пока что-то не очень получается huh.gif

Спустя 25 минут, 34 секунды (9.02.2009 - 17:25) twin написал(а):
Ладно, я посвободнее буду, напишу примерно. А вообще, если только начинаешь, мой тебе совет: начинай сразу со связки с мускулом. Все равно жизнь заставит, а это проще и удобнее.

Спустя 3 минуты, 3 секунды (9.02.2009 - 17:28) freed-master написал(а):
Паиб!

Спустя 14 минут, 8 секунд (9.02.2009 - 17:42) sergeiss написал(а):
Цитата (twin @ 9.02.2009 - 17:25)
Ладно, я посвободнее буду, напишу примерно. А вообще, если только начинаешь, мой тебе совет: начинай сразу со связки с мускулом. Все равно жизнь заставит, а это проще и удобнее.

Я понимаю, что это "вопрос религии"...
Но я бы предложил в сторону PostgreSQL смотреть, а не в сторону MySQL smile.gif

Спустя 1 час, 14 минут, 4 секунды (9.02.2009 - 18:56) freed-master написал(а):
Цитата
Но я бы предложил в сторону PostgreSQL смотреть, а не в сторону MySQL

А в чем отличие?

Спустя 1 час, 44 минуты, 51 секунда (9.02.2009 - 20:41) sergeiss написал(а):
Цитата (freed-master @ 9.02.2009 - 18:56)
Цитата
Но я бы предложил в сторону PostgreSQL смотреть, а не в сторону MySQL

А в чем отличие?

Глобальных отличий особо нету....
Но вот пример. Когда я только начал заниматься ПХП, то, "как все люди", стал использовать MySQL. И начались вопросы кодировок, и другой фигни по мелочам (сейчас просто не помню).
По совету одного умного человека перешел на ПостгреЭсКуЭль. И, почему-то, каким-то "чудодейственным" образом, у меня пропали все проблемы и с кодировками, и все остальные. Я просто стал использовать БД так, как хочу. И "интуитивно понятные действия" приводили, практически всегда, к желаемому результату.
Плюс к этому, есть в Постгре некоторые "приятности", отсутствующие в МайЭсКуЭль. В частности, при выполении запроса на вставку или обновление я могу сразу же получить список новых (обновленных) данных. Это весьма удобно. Достаточно в конце запроса написать "RETURNING *", и данные можно использовать, будто бы они были получены через SELECT.
Также, согласно утверждениям из документации, Постгре больше следует страндартам SQL.
С точки зрения работы из ПХП разницы нету. Почти те же функции, только начинаются имена не с mysql_, а с pg_.
По скорости, согласно разным источникам, БД примерно равны.

Вот у меня БД где-то 8-9 гигов, таблиц где-то 30 или 40. Всё летает "мухой" smile.gif, даже с весьма сложными запросами, затрагивающими несколько таблиц и с выборкой по весьма сложным условиям.

Спустя 1 час, 23 минуты, 27 секунд (9.02.2009 - 22:05) twin написал(а):
Глобальное отличие в коньюнтктуре. Если писать для себя, то конечно надо выбирать то, что получше. А если на публику, выбирать не приходится. Попробуй ка продать какую нибудь приладу, которая потребует изучения, установки, наладки и обслуживания дополнительного ПО. Да 95% живого населения сбежит как черт от ладана, не вникнув даже во все прелести. А остальные 5% могут поинтересоваться из чистого любопытства. Из них может 1-2% действительно заинтересуется. Вот Макинтош - не плохая штука по сути, ан нет, никому не надо. Только малой толике гурманов. Так что зороастрийская вера тоже имеет право на существование, но заменить ей хрестианство - вряд ли в ближайшие 1000 лет получится. При всем желании.

Спустя 18 минут, 7 секунд (9.02.2009 - 22:23) sergeiss написал(а):
twin, если твое рассуждение рассматривать "вообще", то я согласен полностью. Но вот если говорить о сравнении двух БД (не обязательно даже MySQL vs PostgreSQL)... Конечный пользователь все равно не настраивает БД, какая бы она ни была. Он пользуется результатом. Так что лучше выбирать то, что "по душе" программеру.
Тем более, что Постгре тоже весьма неплохо "идет в массы".

Спустя 8 минут, 1 секунда (9.02.2009 - 22:31) twin написал(а):
Ну как не настраивает... Вот пишу я какую нибудь приблуду и анотацию к ней. А по хорошему - инсталлятор. Там просто все, залей, создай базу, напиши пароль-мароль и жмай кнопку. А тут - найди, скачай, установи, разберись что куда втыкается, потом будет ляля. Я не говорю уже о интеграции. Все равно подавляющее большинство хостеров (если не все) штатно ставят мускул. Для души оно конечно, а на публику увы.

Спустя 57 минут, 14 секунд (9.02.2009 - 23:28) sergeiss написал(а):
Цитата (twin @ 9.02.2009 - 22:31)
Все равно подавляющее большинство хостеров (если не все) штатно ставят мускул.

...и они же точно также штатно ставят Postgre smile.gif Я этим вопросом специально интересовался и был приятно удивлен, что с Постгре проблем не будет у нормальных хостеров.

Спустя 1 час, 18 минут, 27 секунд (10.02.2009 - 00:46) twin написал(а):
Прогресс, что скажешь. Остается только радоваться. smile.gif

Спустя 5 часов, 38 минут, 32 секунды (10.02.2009 - 06:25) freed-master написал(а):
А можете порекмендовать что-нибудь почитать, кроме мануалов?

Спустя 1 час, 35 минут, 10 секунд (10.02.2009 - 08:00) LoneCat написал(а):
Цитата (freed-master @ 10.02.2009 - 07:25)
А можете порекмендовать что-нибудь почитать, кроме мануалов?

Помимо мануалов можем порекомендовать почитать спецификации smile.gif

Спустя 14 минут, 32 секунды (10.02.2009 - 08:15) twin написал(а):
Цитата
Помимо мануалов можем порекомендовать почитать спецификации

+1
И - боже вас сохрани - не читайте до обеда советских газет.
- Гм... Да ведь других нет.
- Вот никаких и не читайте.
(Булгаков, Собачье сердце)


Спустя 9 часов, 52 минуты, 53 секунды (10.02.2009 - 18:08) freed-master написал(а):
Цитата
И - боже вас сохрани - не читайте до обеда советских газет.

smile.gif К счастью на газеты у меня нет времени!


_____________
Всем, кто заинтересован, могу помочь начать зарабатывать на forex.
Пишите в личку или на e-mail: flash-dirt@yandex.ru
Быстрый ответ:

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