Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск в файле php, ищет с ошибками - прошу помочь 
V
    Опции темы
ArNic
  Дата 11.2.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Сделал маленкий инструмент: 
Код

<form method="POST"><input id="search" name="search" type="text"><input type="submit"></form>
<?php
error_reporting(0);
$find = new Find();
$show = $find->FReaddir($_SERVER['DOCUMENT_ROOT'],$_POST['search']);
Class Find {
    function FReaddir($path,$search){
        $dir = opendir($path);
        while ($file = readdir($dir)) {
            if ($file != '..' && $file != '.'){
                $arrfiletype = explode('.',$file);
                if (is_dir($path.'/'.$file)){
                    print '<ul><li><b>'.$itogtab.$file.'</b></li>';
                    $this->FReaddir($path.'/'.$file,$search);
                } elseif (is_file($path.'/'.$file) && $arrfiletype[1] == 'php'){
                    print '<ul><li><i><font color=#666666><b>'.$itogtab.$file.'</b></font></i></li>';
                    $this->FReadfile($path,$file,$search);
                }
            }
        }
        
        closedir($dir);
        print '</ul';
    }
    function FReadfile($folder,$file,$search){
        $fo = fopen($folder.'/'.$file,'r');
        if ($fo){
            for ($i=0; $na = fgets($fo);$i++){
                if ($search!=''){
                    if (stripos($na,$search)){
                        print '<input type="checkbox"/><font color=blue>'.$na.'</font><br/>';
                    }
                } else {
                    if (stripos($na,"location")){
                        print '<input type="checkbox"/><font color=red>'.$na.'</font><br/>';
                    } elseif (stripos($na,"include")){
                        print '<input type="checkbox"/><font color=blue>'.$na.'</font><br/>';
                    } elseif(stripos($na,"reqire")){
                        print '<input type="checkbox"/><font color=green>'.$na.'</font><br/>';
                    }
                }
            }
        fclose($fo);
        }
        print '</ul>';
    }
}
class Utils(){
}
?>

Он ищет значение и выводит список файлов и всю строку где это значение находится. Проблема заключается в том, что я делал это специально чтобы находить переменные и значения по php  и html - чужого мне мало известного кода (бывают задачи на изучение и анализ кода) ... Так чот - тулза не ищет.. а может не выдает результатов в классах и методах искомых файлов... видимо пытается исполнить... что неприемлемо... не знаю как поступить... пытался придумать решение - но пока не додумался.... может у кого будут идеи или конкретные предложения?

P.S. просьба не задавать вопросов о резонности или необходимости такого инструмента.
PM MAIL ICQ   Вверх
ksnk
Дата 11.2.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Может файлы названы с несколькоми точками? 
Common.class.php, например...

Скачать все локально и искать Тотал командиром. Или портнуть в новый проект и продвинутое IDE все само покажет что надо...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ArNic
Дата 11.2.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Дело не в начзании из 3-х точек - а в том, что в файлах с классами (независимо сколько точек в названии) значения в классах не ищет :(

Добавлено через 2 минуты и 44 секунды
По поводу того чтобы пользоваться ide - можно конечно - но у меня виды на эту тулзу

PM MAIL ICQ   Вверх
ksnk
Дата 11.2.2009, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Ну, видимо, полезно прочитать в мануале про stripos. Для случай stripos('include',...), когда incude находится в начале строки, возможно будет чему поудивляться ;-) Хотя, делу это не поможет...

Что за данные ищутся? В каких файлах? К примеру в приведенном файле (Это классы? ) переменнтая $search благополучно нашлась smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ArNic
Дата 11.2.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Да здесь классы содержатся - но как убеждался не раз - все значения он не нахоит - я обязательно чуть позже выложу пример когда, в котором не нашлась переменная, чтобы было с чем оперировать

PM MAIL ICQ   Вверх
Sentox
Дата 11.2.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Используйте pathinfo(); или basename();
PM MAIL   Вверх
Sentox
Дата 11.2.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Я так понял скрипт в любых раскладах должен прогонять рекурсивно все каталоги с подкаталогами и выводить их в список?
Если так он этого не делает.
Он "гаснет" на полпути.
А на счёт точки дополнительной в имени файла это верно он его в упор не видит.Используйте pathinfo()

Это сообщение отредактировал(а) Sentox - 11.2.2009, 17:01
PM MAIL   Вверх
Sentox
Дата 11.2.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Код

   while($na = fgets($fo, 1024)){
                if ($search!=''){
                    if (stripos($na,$search) !== false){
                        print '<input type="checkbox"/><font color=blue>'.$na.'</font><br/>';
                    }
                } else {
                    if (stripos($na,"location") !== false){
                        print '<input type="checkbox"/><font color=red>'.$na.'</font><br/>';
                    } elseif (stripos($na,"include") !== false){
                        print '<input type="checkbox"/><font color=blue>'.$na.'</font><br/>';
                    } elseif(stripos($na,"require") !== false){
                        print '<input type="checkbox"/><font color=green>'.$na.'</font><br/>';
                    }
                }
                     


PM MAIL   Вверх
ksnk
Дата 11.2.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Sentox, А если строка поиска попадет как раз на границу этого 1024 буфера? Будет конфуз... smile

Хотя, это дурацкая придирка... я fgets слишком поздно увидел :-(



Это сообщение отредактировал(а) ksnk - 11.2.2009, 18:38


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0967 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.