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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление из строки, После обработки функцией подсветки 
:(
    Опции темы
Jey_k
Дата 1.10.2005, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

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



Код

$lines = file("code.txt");
$text=join("",$lines);
$text=highlight_string($text);
echo $text;


Все бы хорошо, но вот символы "<?" и "?>" в начале и конце мне совсем не нужны. Чем только не пробовал отрезать ничего не выходит.

Это сообщение отредактировал(а) Jey_k - 1.10.2005, 22:13


--------------------
PM MAIL WWW   Вверх
Mal Hack
Дата 1.10.2005, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



PM ICQ   Вверх
[xoodo]
Дата 2.10.2005, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Первое, что на ум пришло:
Код
$str = str_replace("<?php", "", $str)

С закрывающим аналогично. Если пустая строка не вариант, тогда можно использовать три риплэйса ("<?php\r" для Маков, "<?php\r\n" для Винды, "<?php\n" для Никсов, если не путаю)
PM   Вверх
<Spawn>
Дата 2.10.2005, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Только вот зачем использовать str_replace, которая будет просматривать весь текст, кода достаточно на всякий случай обрезать код от крайних пробелов через trim, а затем при помощи substr вытащить код между <?php ?>, т.е. что то вроде:

Код

$text = trim($text);
$text = substr($text, 5, strlen($text) - 7);



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Jey_k
Дата 2.10.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

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



[xoodo]
<Spawn>
Это я пробовал. Не помогает.
Самое веселое, что на текст внутри $text после обработки highlight_string вообще никак не повлиять. Хотел сменить размер шрифта, поскольку в осле он становится мелким, хотя в Опере путем. Но ничего не вышло.
Добавлено @ 09:23
Mal Hack
Сложновато для меня...


--------------------
PM MAIL WWW   Вверх
Mal Hack
Дата 2.10.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Jey_k можешь чуть подробнее пояснить задачу? Какой может быть текст и т.п., чтобв знать что икак?
PM ICQ   Вверх
Jey_k
Дата 2.10.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

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



Mal Hack
Смысл такой.

Страница сайта показывает примеры частых задач, например, на пхп, как то загрузка файла и прочее. Типа FAQ.
Данные берутся из txt файлов.
В файлах отформатированные тексты примеров, иными словами с отступами (пробелами от края).
код
Код

$lines = file("code.txt");    
$text=join("",$lines);    
$text=highlight_string("<?".$text."?>");    
echo $text;


выводит данные в блоки(обычная таблица).

Мне нужно от всей этой системы:
-Вывод подсвеченного кода с обрезанными <? и ?> по той причине, что подсветка хорошо подходит и к Delphi текстам и С++, но без <? подсветки не будет.
-Вывод любым нужным мне размером. По умолчанию Осёл показывает очень мелкий текст кода.


--------------------
PM MAIL WWW   Вверх
Mal Hack
Дата 2.10.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(Jey_k @ 2.10.2005, 13:26)
что подсветка хорошо подходит и к Delphi текстам и С++

Это как???

Сделай просто substr() с 2 по n - 4 и все.
PM ICQ   Вверх
Jey_k
Дата 2.10.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

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



Цитата(Mal @ 2.10.2005, 20:57)
Это как???

Ну некоторые вещи как == if {} +- "" и прочее есть почти во всех языках

Цитата(Mal @ 2.10.2005, 20:57)
substr() с 2 по n - 4

Вроде делал. Завтра потестю еще


--------------------
PM MAIL WWW   Вверх
Jey_k
Дата 3.10.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

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



Цитата(Mal @ 2.10.2005, 20:57)
Сделай просто substr() с 2 по n - 4 и все.

Не прокатило.


--------------------
PM MAIL WWW   Вверх
-=Ustas=-
Дата 3.10.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Jey_k, первое что мне на ум пришло:
Код

<?php

ob_start();

$lines = file("code.txt");
$text  = join("",$lines);

highlight_string($text);

$out = ob_get_clean();
$out = preg_replace("/&lt;\?php(.*?)\?&gt;/i", "\\1", $out);

echo $out;

?>

Да, и использование буферизации в данном случае обязательно, т.к. функция highlight_string после своего выполнения, уже направляет поток на вывод.
Больше пока ничего в голову не пришло... smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Jey_k
Дата 3.10.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

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



Цитата
Call to undefined function: ob_get_clean()


по ходу у меня интерпретатор вообще древний


--------------------
PM MAIL WWW   Вверх
-=Ustas=-
Дата 3.10.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Вообще-то да, эта функция поддерживается только с версии 4.3.0. Попробуй тогда ob_get_contents(), хотя в мане написано, что она только возращает содержимое, но у меня она еще и в поток вывод пихает, и еще можно попробовать заюзать ob_end_clean(), но у меня она ничего не возращает (просто уничтожает и всё), хотя в старых версиях PHP должна была возращать при очищении....


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 3.10.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата
Да, и использование буферизации в данном случае обязательно, т.к. функция highlight_string после своего выполнения, уже направляет поток на вывод.

Не надо тут никакой буферизации !!

PM ICQ   Вверх
-=Ustas=-
Дата 3.10.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Mal @ 3.10.2005, 16:44)
Не надо тут никакой буферизации !!

Ну а каким образом ты будешь обрезать этот текст, а потом только вывод делать???


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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