Форум программистов, компьютерный форум, киберфорум
PHP: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761

CodeIgniter 2.2.0: подключение внешних (своих) библиотек

22.10.2014, 10:09. Показов 3050. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени. Столкнулся со следующей проблемой и пока не могу понять в чем причина. Сразу хочу оговориться, что на локальном сервере все работает. Не работает лишь после переноса на хостинг.
Проблема в том, что работа скрипта останавливается на строчке:
PHP
1
$this->load->library('z_text_format');
Этой строчкой я собираюсь загрузить класс Z_text_format, который находится в файле application/libraries/Z_text_format.php
Это мой файлик, где я собрал несколько функций форматирования текста.

Как я выяснил, что работа останавливается именно на этой строчке? Во-первых, если написать имя класса с ошибкой, то фреймворк ругается. Здесь же вообще выдает чистый лист.
Во вторых пробовал выдавать сообщения так:
PHP
1
2
3
echo "before load<br />";
$this->load->library('z_text_format');
echo "after load<br />";
В браузер выводиться "before load" и ничего больше.

В чем может быть проблема?
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2014, 10:09
Ответы с готовыми решениями:

Подключение внешних библиотек
Доброго времени. И снова я к сообществу за помощью. Подскажите, как упаковываются исходники? например, я создал библиотеку с часто...

Подключение внешних Java-библиотек
Хочу сказать что на яве я никогда ничего не писал и в связи с этим есть вопрос: Вот скачал я один из примеров и что дальше с ним делать? ...

Подключение и использование внешних dll-библиотек
написал метод, который получает данные с базы данных, его проверил, работает: using System; using System.Collections.Generic; using...

6
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
22.10.2014, 10:49
в том, что у вас нет вывода ошибок
1
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
22.10.2014, 12:58  [ТС]
Спасибо!
Действительно, вывод ошибок на сервере был отключен.

Чтож, теперь понятно, что ошибка в подключаемом файле:
Code
1
Parse error: syntax error, unexpected $end in ...../Z_text_format.php on line 1
Но всё равно не понятно.
Строка 1 у меня начинается так:
PHP
1
<?php
Сразу за ней идет комментарий, затем определение класса.
Не пойму. Другие мои библиотеки спокойно подключаются, хотя структура там такая же....
В какую сторону копать?

Добавлено через 51 минуту
После некоторого гугления понял, что такая ошибка обычно возникает, когда не закрыт тег <?php или не закрыта фигурная скобка. причем это может быть не только в подключаемом файле.
Я все же склоняюсь, что ошибка именно в подключаемом файле, так как другие библиотеки подключаются нормально.

Но я в упор не вижу где у меня не закрыта скобка или тег. Даже поиск находит одинаковое количество открытых и закрытых скобок))

Добавлено через 14 минут
Я нашел функцию из-за которой возникает ошибка.
Конкретно в данном месте программы я эту функцию не использую, но вырезать ее из класса не хочу. Планирую ее использовать в другом месте. Кроме того, на локальном сервере работает...

Может вы подскажите? Где в моей функции проблема..?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/** 
* Заменяет некоторые BB теги на их html аналоги.
* 
* param     string  $text   - Текст для обработки.
* 
* return    string          - Обработанный текст.
*/
public function replaceBBtags($text) {
    $text = substr($text, 0, 20000); //Обрезаем строку    
 
    $text = preg_replace('/(\[b\])(.*?)(\[\/b\])/i', '<strong>$2</strong>', $text); //BB тег [b]
    $text = preg_replace('/(\[i\])(.*?)(\[\/i\])/i', '<em>$2</em>', $text); //BB тег [i]
    $text = preg_replace('/(\[u\])(.*?)(\[\/u\])/i', '<span style="text-decoration: underline;">$2</span>', $text); //BB тег [u]
    $text = preg_replace('/(\[quote\])(.*?)(\[\/quote\])/i', '<q>$2</q>', $text); //BB тег [quote] без аргуметов
    $text = preg_replace('/(\[img\])(.*?)(\[\/img\])/i', '<img style="max-width: 640px; max-height: 480px;" src="$2" alt="userimage" />', $text); //BB тег [img]
    $text = preg_replace('/(\[url\])(.*?)(\[\/url\])/i', '<a href="$2">$2</a>', $text); //BB тег [url] без атрибутов
    $text = preg_replace('/(\[url=&quot;(.*?)&quot;\])(.*?)(\[\/url\])/i', '<a href="$2">$3</a>', $text); //BB тег [url] с атрибутами
    
    return $text . "\n";
}
Добавлено через 15 минут
Вообще ничего не пойму...
Методом тыка определил, что ошибка возникает из-за комментариев с двойными косыми. Когда меняю их на /**/, то работает нормально... Причем это именно в этом файле!

Добавлено через 15 минут
Есть еще один симптом...
Когда первая строка <?php написана без пробела в конце, то выдает ошибку:
Code
1
Parse error: syntax error, unexpected T_CLASS in ...... on line 1
если пробел есть, то ругается на "косые" комментарии.

Когда подключаю свою другую библиотеку, то пробела там нет, и косые комментарии присутствуют. Но там все нормально...
0
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
22.10.2014, 17:47
слишком много текста, каким образом вы подключаете файл, потом какое у вас там содержимое файла + какую IDE вы используете?
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
23.10.2014, 15:23  [ТС]
Файл подключаю при помощи CodeIgniter:
PHP
1
$this->load->library('z_text_format');
Содержимое файла:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/**
* Библиотека методов для форматирования текста
* 
* Автор: Зверушь
* Версия: 0.2
* Дата: 2014-04-18
*/
 
class Z_text_format {
    /** 
    * Заменяет некоторые BB теги на их html аналоги.
    * 
    * @param    string  $text   - Текст для обработки.
    * 
    * @return   string          - Обработанный текст.
    */
    public function replaceBBtags($text) {
        $text = substr($text, 0, 20000); //Обрезаем строку    
 
        $text = preg_replace('/(\[b\])(.*?)(\[\/b\])/i', '<strong>$2</strong>', $text); //BB тег [b]
        $text = preg_replace('/(\[i\])(.*?)(\[\/i\])/i', '<em>$2</em>', $text); //BB тег [i]
        $text = preg_replace('/(\[u\])(.*?)(\[\/u\])/i', '<span style="text-decoration: underline;">$2</span>', $text); //BB тег [u]
        $text = preg_replace('/(\[quote\])(.*?)(\[\/quote\])/i', '<q>$2</q>', $text); //BB тег [quote] без аргуметов
        $text = preg_replace('/(\[img\])(.*?)(\[\/img\])/i', '<img style="max-width: 640px; max-height: 480px;" src="$2" alt="userimage" />', $text); //BB тег [img]
        $text = preg_replace('/(\[url\])(.*?)(\[\/url\])/i', '<a href="$2">$2</a>', $text); //BB тег [url] без атрибутов
        $text = preg_replace('/(\[url=&quot;(.*?)&quot;\])(.*?)(\[\/url\])/i', '<a href="$2">$3</a>', $text); //BB тег [url] с атрибутами
        
        return $text . "\n";
    }
    
    /** 
    * Преобразовывает многострочный текст в однострочный. Каждую строку
    * обрамляет html тегом <p>.
    * 
    * @param    string  $text   - Текст для обработки.
    * 
    * @return   string          - Обработанный текст.
    */
    public function make_paragraphs($text) {
        $lines = explode("\n", $text);
        foreach ($lines as $line_key=>$line_value) {
            $lines[$line_key] = '<p>' . $line_value . '</p>';
        }
        $text = implode('', $lines);
        
        return $text;
    }
    
    /** 
    * Удаляет html теги <p> из текста.
    * 
    * @param    string  $text   - Текст для обработки.
    * 
    * @return   string          - Обработанный текст.
    */
    public function remove_paragraphs($text) {
        $pattern = '/<p>|<\/p>/m';
        $text = preg_replace($pattern, '', $text);
        
        return $text;
    }
}
?>
IDE не использую, всё пишу в Notepad++
0
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
23.10.2014, 15:52
а кодировка какая файла?
1
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
23.10.2014, 16:54  [ТС]
UTF-8 без BOM, как и во всех остальных фалах

Добавлено через 24 минуты
Спасибо за подсказки и наводки! Я решил проблему.
Не знаю, каким образом это произошло, но почему-то подумал, что нужно в Notepad++ включить режим отображения всех символов. Так вот, в этом файле в конце каждой строки присутствовал только символ возврата каретки (CR), в то время как во всех остальных файлах было либо LF либо CRLF. Причем в этом файле CR ставилось автоматически для каждой новой строки... Не знаю, может нажал случайно какое-то сочетание клавиш и не заметил...
Не долго думая преобразовал все в CRLF и залил на сервер. Заработало!!!

Так что проблема даже не в CodeIgniter'e была. Думаю, тему можно перенести в соответствующий раздел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2014, 16:54
Помогаю со студенческими работами здесь

Подключение своих библиотек к VS
Со временем накопились у меня различные функции, которые удобно использовать в своих проектах. Интересует как их встроить в студию дабы они...

Подключение своих библиотек
Ошибка: не удается открыть источник файл &quot;mystruct.h&quot;. Все бы ничего, если бы не написал библиотеку, но я написал. MYSTRUCT.H ...

Подключение своих созданных библиотек к проекту
Хочу создать библиотеку классов и потом ее использовать! как создать понимаю. а вот как ее потом подключить и использовать не совсем!...

[WPF] Скрытие внешних библиотек
Добрый день. Возможно кто-то сталкивался: приложение использует внешние библиотеки, которые после компиляции лежат рядом с exe-шником. Есть...

Проект и использование внешних библиотек
привет) хочу спросить по поводу android stuudio/// для работы с pdf-файлами скачал библиотеку, закинул в проект....потом закинул пару...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
23.10.2014, 17:44
всегда рады помочь
0
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru