PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (6): « 1 [2] 3 4 5 6 »

> Найдено сообщений: 77
MrSource Отправлено: 12 Апреля, 2011 - 14:01:57 • Тема: Замена "собственных" тегов по регулярному выражению в html. • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1097
Не получается...
CODE (htmlphp):
скопировать код в буфер обмена
  1. Catchable fatal error: Object of class Closure could not be converted to string in *** on line *
MrSource Отправлено: 12 Апреля, 2011 - 12:00:01 • Тема: Замена "собственных" тегов по регулярному выражению в html. • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1097
Саныч пишет:
PHP:
скопировать код в буфер обмена
  1. $html = ''; // тут ваш html
  2. $html = preg_replace('#\[LANG\:([a-z][a-z0-9_]*)\]#',$lang["$1"],$html);

p.s. не проверял, но должно работать


Теги замещаются, но $lang["$1"] не может достучаться к массиву...
MrSource Отправлено: 12 Апреля, 2011 - 09:52:32 • Тема: Замена "собственных" тегов по регулярному выражению в html. • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1097
Здравствуйте, вот задался элементарной задачей, но что-то не могу сообразить как реализовать.

Допустим есть html страница:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. ...
  3.  
  4. <body>
  5. <a href="./main/">[LANG:main]</a> <a href="./logout/">[LANG:logout]</a>
  6. </body>
  7.  
  8. </html>


Нужна функция, которая будет парсить этот html файл и все теги вида [LANG:*word*]
заменять на: $lang['*word*']
Например, на $lang['main']

P.S. составил регулярное выражение соответствующее задаче:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (\\[)(LANG)(:)((?:[a-z][a-z0-9_]*))(\\])
MrSource Отправлено: 12 Апреля, 2011 - 09:44:16 • Тема: HTACCESS и кириллица • Форум: Программирование на PHP

Ответов: 7
Просмотров: 1528
vanicon пишет:
Цитата:
Где то когда то вычитывал, что была такая проблема... лечили преобразованием файла htacces в utf-8

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


Это Вы просто криво сохранили Хм
MrSource Отправлено: 10 Апреля, 2011 - 13:55:48 • Тема: Символ степени и индекса в изображениях. • Форум: Программирование на PHP

Ответов: 3
Просмотров: 427
movEAX пишет:
MrSource пишет:
Блин, из-за кодировки форума тут тоже не отображается индекс или степень...

pastebin?) Впрочем задача ясна. GD вряд ли корректно будет работать с юникодом.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $image = imagecreate(300,100);
  2. $white = imagecolorallocate($image,255,255,255);
  3. $gray  = imagecolorallocate($image,115,115,115);
  4.  
  5. imagestring($image, 5, 10, 15, 'b', $gray);
  6. imagestring($image, 1, 20, 14, '2', $gray);
  7.  
  8. header('Content-type: image/png');
  9. imagepng($image);


Не вариант, я так тоже думал, но мне нужно выводить динамически различные уравнения, тоесть если будет уравнение вида:
b(2) * 32 / 99 * 3(2) = 42(2) (2 - степень)
то, чтобы подставить маленькую двоечку под каждую степень динамически будет очень и очень непросто...
MrSource Отправлено: 10 Апреля, 2011 - 11:50:01 • Тема: Символ степени и индекса в изображениях. • Форум: Программирование на PHP

Ответов: 3
Просмотров: 427
Здравствуйте, есть следующий код:
PHP:
скопировать код в буфер обмена
  1. // Создаём картинку
  2. $Image = ImageCreate(300,100);
  3. $White = ImageColorAllocate($Image,255,255,0);
  4. $Gray = ImageColorAllocate($Image,115,115,115);
  5.  
  6. $String = $a."bІ";
  7.  
  8. imagestring($Image, 2, 1, 15, $String ,'115,115,155');
  9. ImageTTFtext($Image,10,0,1,15,$Gray,getcwd()."./times.ttf",$String);
  10.  
  11. Header("Content-type: image/png");
  12. ImagePng($Image, 'image.png');


То есть мне нужно вывести в изображении b во сторой степени(в квадрате), но при использовании 2-ух функций у меня не получается этого добиться.

Пожалуйста, подскажите.
(Добавление)
Блин, из-за кодировки форума тут тоже не отображается индекс или степень...
MrSource Отправлено: 01 Апреля, 2011 - 18:51:35 • Тема: Проблема с работой класса. • Форум: Программирование на PHP

Ответов: 11
Просмотров: 743
OrmaJever пишет:
я исправил пост.
OrmaJever пишет:
ой я не заметил, статические переменые вызываются self::$var, а я везьде написал self::var


Я уже заметил, после того как ответил, кстати функции offset* не могут быть статическими Улыбка
(Добавление)
MrSource пишет:
OrmaJever пишет:
я исправил пост.
OrmaJever пишет:
ой я не заметил, статические переменые вызываются self::$var, а я везьде написал self::var


Я уже заметил, после того как ответил, кстати функции offset* не могут быть статическими Улыбка


OrmaJever, огромное спасибо за помощь Закатив глазки
MrSource Отправлено: 01 Апреля, 2011 - 18:46:34 • Тема: Проблема с работой класса. • Форум: Программирование на PHP

Ответов: 11
Просмотров: 743
OrmaJever пишет:
возможно я ошибся и строка с масивом будет выгляеть так


Не, там вообще синтаксическая ошибка вылетает:
Цитата:
Parse error: syntax error, unexpected '[', expecting '(' in K:\xampp\htdocs\classes\registry.class.php on line 9
MrSource Отправлено: 01 Апреля, 2011 - 18:42:07 • Тема: Чем отличаются строки? • Форум: Программирование на PHP

Ответов: 14
Просмотров: 790
Extazy пишет:
может ли код работать неправильно из-за того, что в таблице `archives` нет записей одного из пользователей user_id ?? Не все пользователи имеют записи в этой таблице.


Нет, Вы просто получите пустой результат.
MrSource Отправлено: 01 Апреля, 2011 - 18:36:31 • Тема: Проблема с работой класса. • Форум: Программирование на PHP

Ответов: 11
Просмотров: 743
OrmaJever пишет:
хорашо можно зделать и так только тогда registry будет выглядеть так
Спойлер (Отобразить)

и все методы будут доступны registry::*
$this больше использовать нельзя.


Конструкция:
Цитата:
self::vars[$offset]

не обрабатывается, я так понял, что через self::* нужное значение из массива не получить...
MrSource Отправлено: 01 Апреля, 2011 - 16:02:55 • Тема: Проблема с работой класса. • Форум: Программирование на PHP

Ответов: 11
Просмотров: 743
OrmaJever пишет:

Ну если класс registry используется очень часто в core то можно обьект записать в свойство.
PHP:
скопировать код в буфер обмена
  1. class core {
  2.         public $reg = false;
  3.         function init_config() {
  4.                 include('config.php');
  5.                 $this->reg->set('config', $config);
  6.         }
  7.  
  8. }

PHP:
скопировать код в буфер обмена
  1. $registry = new registry;
  2. $core = new core;
  3. $core -> reg = $registry;
  4. $core -> init_config();
  5. $registry->get('config');

По-моему это лутше чем делать метод статическим. Растерялся



Тоже идея, но если классов будет большое количество, передавать переменную в каждый из низ будет неудобно как-то.

Вообще цель - создать универсальный класс, чтобы был доступ к определённым параметрам из любой части скрипта(инклуд, класс, функция и т.д.) без лишних телодвижений.
MrSource Отправлено: 01 Апреля, 2011 - 15:28:14 • Тема: Проблема с работой класса. • Форум: Программирование на PHP

Ответов: 11
Просмотров: 743
Но теперь, чтобы получить в любой функции доступ к регистру, нужно будет переменную $registry сделать глобальной в каждой функции.
Мне нужно, чтобы в любой функции можно было получить любое значение с помощью
MrSource Отправлено: 31 Марта, 2011 - 21:27:08 • Тема: Проблема с работой класса. • Форум: Программирование на PHP

Ответов: 11
Просмотров: 743
Здравствуйте, для примера, есть слудующий код:
PHP:
скопировать код в буфер обмена
  1. $core = new core;
  2. $core -> init_config();
  3.  
  4. registry::get('config');


класс core:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class core {
  3.  
  4.         function init_config() {
  5.                 include('config.php');
  6.                 registry::set('config', $config);
  7.         }
  8.  
  9. }


класс registry:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. Class Registry Implements ArrayAccess {
  4.        
  5.         private $vars = array();       
  6.  
  7.         function offsetExists($offset) {
  8.  
  9.                 return isset($this->vars[$offset]);
  10.  
  11.         }
  12.  
  13.  
  14.         function offsetGet($offset) {
  15.  
  16.                 return $this->get($offset);
  17.  
  18.         }
  19.  
  20.  
  21.         function offsetSet($offset, $value) {
  22.  
  23.                 $this->set($offset, $value);
  24.  
  25.         }
  26.  
  27.  
  28.         function offsetUnset($offset) {
  29.  
  30.                 unset($this->vars[$offset]);
  31.  
  32.         }
  33.  
  34.         function set($key, $var) {
  35.  
  36.                 if (isset($this->vars[$key]) == true) {
  37.  
  38.                 throw new Exception('Unable to set var `' . $key . '`. Already set.');
  39.  
  40.                 }
  41.  
  42.  
  43.                 $this->vars[$key] = $var;
  44.  
  45.                 return true;
  46.  
  47.         }
  48.  
  49.  
  50.         function get($key) {
  51.  
  52.                 if (isset($this->vars[$key]) == false) {
  53.  
  54.                         return null;
  55.  
  56.                 }
  57.  
  58.  
  59.                 return $this->vars[$key];
  60.  
  61.         }
  62.  
  63.  
  64.         function remove($var) {
  65.  
  66.                 unset($this->vars[$key]);
  67.  
  68.         }
  69.  
  70.  
  71. }
  72. ?>


config.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $config = array(
  3.   '123' => '321',
  4.   '321' => '123'
  5. );


по сути требуется получить доступ к массиву, но я получаю ошибку:
Цитата:
Fatal error: Using $this when not in object context in K:\xampp\htdocs\classes\registry.class.php on line 53


Если сделать так:
PHP:
скопировать код в буфер обмена
  1. $registry = new registry;
  2. $core = new core;
  3. $core -> init_config();
  4.  
  5. $registry -> get('config');
  6. или
  7. $registry['config']

то доступ к массиву я всёравно не получаю, но ошибка уже не возникает...

прошу вас помочь решить проблему...
MrSource Отправлено: 22 Марта, 2011 - 16:49:59 • Тема: mysql_fetch_array, перебираем массивы с конца • Форум: Программирование на PHP

Ответов: 6
Просмотров: 754
Мелкий пишет:
MrSource пишет:
тоесть мне нужно достать 30 последних сообщений с 5-ой комнаты

Но непосредственно по id сортировать-то бесполезно, т.к. id у всех записей одинаковый и равен 5.
По чему-то другому надо сортировать, например по id сообщения.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM messages WHERE id=5 ORDER BY id_message DESC LIMIT 30


Немного неправильно запрос здесь написал,
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT * FROM messages WHERE channel='5' ORDER BY id DESC LIMIT 30");


В базе сообщения имеют такие столбцы: id,username,date,message,channel
MrSource Отправлено: 22 Марта, 2011 - 16:43:09 • Тема: mysql_fetch_array, перебираем массивы с конца • Форум: Программирование на PHP

Ответов: 6
Просмотров: 754
Саныч пишет:
Уберите из запроса DESC и получите "с конца"

Вы немного не поняли логики) Мне нужны последние 30 записей в базе, но, чтобы эти 30 сообщений просто выводились в обратном порядке.

Champion пишет:
Отсортировать в другую сторону
SELECT * FROM(SELECT * FROM messages WHERE id='5' ORDER BY id DESC LIMIT 30) t ORDER BY id ASC

Вообще интересно, что id в выборке будут одинаковые: id='5' и вообще не понтно нафига сортировка.

Либо есть такая штука как mysql_num_rows() и mysql_result()


id служит, как идентификатор канала чата(или же комнаты, чтобы было понятнее), тоесть мне нужно достать 30 последних сообщений с 5-ой комнаты Улыбка

Champion, Благодарю, всё получилось Улыбка Очень оперативно)

Страниц (6): « 1 [2] 3 4 5 6 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB