Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2009, 00:00   #1
igroman
Пользователь
 
Регистрация: 25.05.2008
Сообщений: 75
По умолчанию Проблема с библиотекой

Я тут попробовал сделать ради обучения такую вещь - у меня есть файл, содержащий номера ошибок, и их описание. (Errors.txt). Есть библиотека, modules.php, которая находит в файле Errors.txt код ошибки, и возвращает всю строку ошибки. Вот код:

PHP код:
<?php
class ErrorLib{

    static function 
GetError($Err_nmbr){
        
$file fopen("Errors.txt","rt") or die("Не вышло открыть файл, содержащий коды ошибок.");
        
$i 1;
        while (!
feof($file)){
            
$st fgets($file$i);
            if(
strpos($st,"E".$Err_nmbr)===false){
                
$i++; //Если строка не содержит номера ошибки, идём дальше.
            
}else{
            break; 
//Строка содержит номер ошибки
            
}
        }
    return 
$st//Вернуть строку

    
}
}
?>
В теле программы я попробовал запустить функцию так -
PHP код:
echo ErrorLib::GetError('011'); 
Но функция вывела всего 28 символов, дальше не выводит.
В файле, текст хранится в таком формате:
E011 - Ошибка подключения к базе данных.

Если надо, то у меня стоит Денвер. Апач+пхп+мускул поставить всё никак руки не дойдут.

Подскажите, что у меня нетак, из-за чего не до конца выводится строка?
igroman вне форума Ответить с цитированием
Старый 11.01.2009, 10:04   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
fgets

(PHP 3, PHP 4)

fgets - получает строку из указателя на файл.
Описание

string fgets (int fp [, int length])

Возвращает строку размером длина строки - 1 байт, прочитанную из файла, на который указывает fp. Чтение заканчивается при достижении точки length - 1 байт, символа newline (который включается в return-значение) или EOF (смотря что будет найдено первым). Если length не специфицирован, по умолчанию length будет 1k, или 1024 байт.

Если возникла ошибка, возвращает FALSE.

Обычные недочёты:

Те, кто использует семантику 'C' с функцией fgets(), должны учитывать отличия при возвращении EOF.

Указатель на файл обязан быть правильным и указывать на файл, успешно открытый функциями fopen(), popen() или fsockopen().
скорее всего не правильно применена переменная $i
свободен...
wall66 вне форума Ответить с цитированием
Старый 11.01.2009, 11:07   #3
igroman
Пользователь
 
Регистрация: 25.05.2008
Сообщений: 75
По умолчанию

Блин, в книге оказывается неправильно дали описание функции... А я как-то и не догадался слазить на сайт пхп. Спасибо большое

Последний раз редактировалось igroman; 11.01.2009 в 11:30.
igroman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
Проблема с gets() TheWanderer Общие вопросы C/C++ 12 21.11.2008 14:35
проблема bill Свободное общение 7 08.07.2007 21:05