PHP | |
---|---|
Первый вопрос у мя уже созрел, правда из участников кто интересуется php знаю только bob, но может кто нить подтянеться, а вопрос по регулярным выражениям, кто нить разобрался с ними, в осоновном интересует функция preg_replace, str_replace?
| |
Говорят, творческий рост программиста можно разделить на 2 этапа: "до регулярных выражений" и "после них" в том плане что после их освоения :)
И говорить про регулярные выражения можно часами. Вкратце, разница между str_replace и preg_replace в том, что str_replace предназначен для составления простых условий замены (типа все символы "а" заменить на "б"), а с preg_replace работают когда замену проводят по регулярному выражению в формате PCRE. например: str_replace(" ", ", $some_str"); заменяет символ перевода строки на html тег preg_replace ('/(S+)@([a-z0-9.]+)/is' , | |
Воровать не хочеться, просто хочу сам понять как и что делать, поэтому и писал с вопросом... Ну думаю так и сделаю. если не найдёться ответа.
Про разницу в регулярный выражениях - это я понял, сам использовал при замене некоторых тегов, просто возникли вопросы более конкретные, попозже напишу их суть... | |
Вот кстати тут и моно обсудить как научить скрипт выкидывать html теги из текста но оставлять их если они замкнуты например в тег (code).
Над сие вопросом и пошёл думать... | |
Вот такой вопрос - есть значиться файл на unix сервере, например file.html, и имеет он права доступа chmod 644 or -rw-r-r, вопрос как моно перезаписать этот файл через скрипт... на win я пробовал делать что то типа [code]chmod ("file.html", 0666);[/code] а вот на никсах такая штука не прошла, почему то... Вопрос номер два, как можно дать понять серверу что я и есть owner - пользователь, заходя через php скрипт?
| |
Почему не прошла — понятно :)
В windows сервер Апач по умолчанию (а ты наверное в его настройках не сильно копался) работает с администраторскими полномочиями. Ну а в *nix'e это ен так. :) У Апача элементарно не хватает "полномочий" на изменение атрибутов файла! Выход из этой ситуации по-моему только один: изменять атрибуты файла вручную через ftp. Можно ещё конечно (я правда сам так ни разу не делал) давать определённому пользователю "супер права" через сам Апач. В .htaccess вроде можно прописать, чтобы после ввода пароля Апач узнавал в пользователе супер-пользователя и давал ему более широкие полномочия на работу с файлами. Но хостеры эту возможность дают только за большие деньги :) А в ТТ вообще, .htaccess'ом нельзя пользоваться ни для каких целей. :( В общем, изменять права доступа по-моему -— только через ftp... Но я был бы рад, если ошибаюсь ;) | |
точно, забыл я про разницу Апача на win и unix...
в ручную через Ftp это не GOOD, а ведь можно скриптом подлючаться к ftp, и так же скриптом моно поменять права?! надо будет что нить почитать... в ТТ много чего не совсем прикольно сделано... к БД не возможно подключиться удалённо и нотисы не выключены. :( | |
Ну, в конце концов ТТ и не хостинг-провайдер. Место под сайт это скорее так, "чтоб было" :)
Хорошая идея подключаться к ftp! Я и не подумал над этим :))) Только опять же надо проверить, может и не получится ничего :( | |
по поводу нотисов, некоторые моменты я знаю как вылечить, просто буду в начале перед тем как определить переменную. буду проверять а имееться ли она ваще, что нить типа [code]isset($name)[/code]а вот есть такой момент:
допустим переменная $_GET['com'] может быть равна 25.123 , а может быть равна 25.123.2 , я вначале скрипта с помощью функции list [code]list($name1,$name2,$name3)=explode(".", $name);[/code] разбиваю переменную на числа. Если $_GET['com']==25.123 , то будет notice... Что можно сделать в этой ситуации? | |
В php для этих целей есть полезнейший оператор — оператор "собака". Да-да, самая настоящая собака, — @. Переменная или оператор, перед которым стоит знак @ не будет посылать ошибок ни в браузер, ни даже записывать ошибку в логи :)
Т.е. для решения проблемы, можно записать так: [code]@list($name1,$name2,$name3)=explode(".", $name);[/code] Этой же "собакой" можно избавится от лишних вызовов проверки "на isset" :) | |
точняк... всё я точно пересидел за компом...
всё не каких скриптов более, мне нужно RTFM! | |
bob а не было желания попробовать написать онлайновую игру, по типу "Онлайновая игра Wizards World", про неё ещё статья висит Здесь
| |
Никогда об этом не думал :)
И не играл ни разу вообще ни в какую "браузерную" игру. Так что пока не знаю. Мне кажется, если и делать такое, то интерфейс на flash'е, а коды на C писать. Ни того, ни другого я практически не знаю %) Во всяком случае, интерфейс на флэше уж точно. Одной Явой тут не обойтись. | |
Ну это ещё зависит от конечного результата, моно и простенькую игру написать где и Явы хватит... Flash интерфейс конечно было бы прикольно. Да, я вот тоже в этом лапать, но может как нить попробуем что нить простенькое, но интересное слепить?
| |
У меня времени как воды в пустыне. и мало, и нужно очень.
Поэтому всерьёз заняться я не могу. :( Но помоч — написать подпрограмму какую-нибудь — это завсегда. :) | |
[quote=bob]
Димарик, своруй в phpbb и функцию bbcod'а. Она там умеет отслеживать парные теги, и "конвертировать" только их, а не все. :) [/quote] я вот въехать немогу, помоему она там просто закрывает открытые теги, а если ставить просто закрывающий тег она его не учитывает... Жалко я потёр все свои phpbb форумы, не начем посмотреть... надо просто до ума довести свои регуляры, такое не прошло бы, но ... просто раньше цитата работала подругому, а когда сделал не регулярах старую систему тоже пришлось оставить, так как половина сообщений использовала старую систему... вообщем трудно объяснить. Но это всё поправимо, нужно лишь время. | |
[quote=Dimarik][quote=bob]
Димарик, своруй в phpbb и функцию bbcod'а. Она там умеет отслеживать парные теги, и "конвертировать" только их, а не все. :) [/quote] я вот въехать немогу, помоему она там просто закрывает открытые теги, а если ставить просто закрывающий тег она его не учитывает... Жалко я потёр все свои phpbb форумы, не начем посмотреть... [/quote] В том-то и дело, что нет :) Я не уверен, что точно понял алгоритм — я в него особо не въезжал, — но работает примерно так: сканирует сообщение;
если видит открытый тег, ищет ближайший к нему парный закрывающий; если находит — "конвертирует их обоих в html, если нет — оставляет как есть. Единственное, что плохо, никак нельзя отслеживать очерёдность вложенности. Типа если будет (b)бла(u)бла(/u)бла(/u), то получится бла[u]бла[/u]бла, а не бла[u]бла[/u][u]бла[/u] upd: я тут сначала немного неправильно пример написал. Надеюсь, никто не заметил :) | |
не, спасибо bob, но код не нужен... я впринципе разобрался, осталось только сделать!
Так спасибо за помощь! :) | |
не, ни фига не разобрался... я то думал что моё регулярное выражение будет заменять только если и первое и второе условие есть, а ему всё равно он заменяет то что есть!
| |
Естественно, ведь это именно регулярное выражение. А не условие :)
Ксловия надо писать отдельно. Типа if тото, then preg_replace тра-ля-ля
endifЯ правда не понимаю как это твоё выражение вообще работает :) Зачем там, например, array? %) | |
то что написано сверху не работает, там нехватает кучи обратных слешей... а array это я просто где то вычитал, ну и использую такую форму, это что типа замена с использованием массивов... так на словах объяснить не смогу, сам не до конца понял.
| |
у меня ещё одна немного глупая идея, посему и пишу...
bob а ты не тестил какие нить web audio проигрыватели, я просто не когда не сталкивался, но знаю что должны быть... Вообщем если чего нить есть на примете - зарисуй ссылочку или на мыло... | |
Я первый раз о таких от тебя сейчас слышу :)
В любом случае, — музыка, да и вообще любые звуки на сайтах это вред. | |
да это не совсем для сайта, так просто есть идейка одна, хочеться попробовать реализовать...
лана если чего найду покажу. | |
Я знаю только одну фичу, связанную "с музыкой". Она печатает на сайте текущий винамповский playlist.
| |
я так понял что плейлист храниться в папке windows/temp интересно по какому принципу она печатает... с той машины на которой играет винамп или же удалённо, если на машине на которой винамп, то это есть даже у некоторых плугинов такая функция.
| |
У меня с перепоя сегодняшнего дозрела одна мысль.
...Надо повышать грамотность в интернете. Проект Орфус Дмитрия Котерова вещь хорошая, но, вообще говоря, довольно бестолковая. Она помогает только авторам сайтов, где автор всего материала это и есть автор сайта (блог, например). Для "комьюнити-сайтов" Орфус бесполезен. Не будет администратор сервера подчищать тексты за многочисленными авторами. Можно, наверное, конечно, модернизировать систему, чтобы определять автора, и слать извещение именно ему. Но это нудно. И не решаит проблемы грамотности сообщений на форумах, к примеру. Надо что-то другое. Надо чтобы на сайте был визуальный редактор, который бы подсвечивал ошибки в реальном времени, в момент написания сообщений (ну как Winword). Вот это было бы супер-мега круто. (Кстати, уважающие себя люди так и делают: материал на сайт они готовят в Word'е, отлавливают там все ошибки, верстают по всем правилам, и на сайт кладут красивый грамотный текст с правильныо расставленными знаками препинания, спецсимволами ну и т.д.) Вот бы как-нибудь осуществить эту идею. Хотя бы представить, как это будет всё выглядеть. Наверное, в режиме реального времени подсвечивать ошибки не удасться: на Яве программу-орфограф хрен напишешь наверное, придётся использовать какое-нибудь "прикладное" приложение, работающее как внешний cgi-сценарий. А его не получится "крутить" постоянно — только обращаться временами. Например, жмёшь "предпросмотр", и там уже идёт подсветка. Хотя это не очень здорово. И даже совсем не здорово. Но программа-орфограф в интернете нужна. Каким бы грамотным ты ни был, когда пишешь текст (особенно много текста) в маленькой убогой формочке с мелкими буковками и этой сраной прокруткой, волей не волей будешь ошибаться в самых примитивных словах. | |
да, идея классная... вот только редактор собрать будет проблематично, нужно что бы он проверял все слова, основываясь на словарь?! Думаю это интересно, но немного трудно.
Ещё труднее с знаками препинания. Да и с падежами и со склонениями... посмотрел бы я на механизм сие редактора... 8) | |
То-то и оно...
На php это хрен напишешь. Максимум — слова на грамотность прверять. Завести mysql-таблицу со словарём, и сверять по нему. Чтоб типа "варона" не написать. Я вот думал, сколько интересно места занимает орфографический модуль того же Ворда. (хотя нет, Вордовский наверное хорошо защищён. надо бы найти аналог с открытым кодом). Если в пределах 5-10 Мегабайт, то можно использовать его как cgi-скрипт. Передавать ему текст, он его будет проверять, возвращать результат, который на php каким-то образом надо будет перевести в html-тест, расставив стиялми "подсветку" ошибок. Как это сделать ума не приложу... |