PHP.SU

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

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

> Найдено сообщений: 103
MADONZY Отправлено: 10 Мая, 2014 - 15:04:50 • Тема: Упрощение скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 331
LIME пишет:
а зачем это знать?

Задание такое. Есть страница О НАС на которой есть сайты, статьи и приложения (это всё ссылки на внешние ресурсы). Если пользователь хочет что-бы ссылки на его сайты, статьи и т.д. появились там, он должен у меня в папке Classes создать папку, с пофиг каким именем, в ней должен быть файл где храниться класс (пофиг какое имя файла), имя класса тоже пофиг, но он должен наследовать мой интерфейс. Так вот, нужно подключить все файлы и создать экземпляры классов только для тех, которые наследуют мой интерфейс. Далее вытягивать результаты их методов и заносить в массив, который позже нужно вывести списком html).
Я уже все сделал, просто эти 2 участка кода не понравились, поэтому и спрашиваю)
(Добавление)
teddy пишет:
при таком подходе будет 213 итераций цикла + создание 213 объектов и 213 проверок на то пользовательский ли класс

об этом и речь. Производительности - 0...
Поэтому и хочется узнать можно ли как-то упростить...

П.С: teddy, ваш код можно упростить если в else удалять созданный объект))
П.П.С: Но тем не менее)) Как лучше разрулить данную ситуацию)
MADONZY Отправлено: 10 Мая, 2014 - 14:03:29 • Тема: Упрощение скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 331
autoload не подойдет) так как я вообще не буду знать какие классы подключены, ведь объекты не создаются, значит автолоад не подходит.
Я вроде бы не сложные вопросы задаю(
MADONZY Отправлено: 10 Мая, 2014 - 04:58:40 • Тема: Упрощение скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 331
Доброе утро)
Подскажите пожалуйста аналогию вот этого (нужно узнать имена классов из подключенных фалов):
PHP:
скопировать код в буфер обмена
  1. $list = get_declared_classes(); // Объявленные классы до подключения
  2. // loop start
  3. // ...
  4. require_once $fileIt->current();
  5. // ...
  6. // loop end
  7. $this->_classes = array_diff(get_declared_classes(), $list); // Классы из файлов которые были подключены

но только с помощью отражения (Reflection).

и ещё вот это (может можно сделать как-то проще, но обязательно с помощью итераторов. (Цель - рекурсивно подгрузить все файлы из директорий, заданной директории("./classes"))):
PHP:
скопировать код в буфер обмена
  1. $dirIt = new DirectoryIterator("classes");
  2.  
  3. foreach ($dirIt as $children)
  4.         if($children->isDir() && !$children->isDot()) {
  5.                 $fileIt = new FilesystemIterator("classes/".$children);
  6.                 require_once $fileIt->current();
  7.         }
  8.        

Заранее благодарю Улыбка
MADONZY Отправлено: 08 Мая, 2014 - 03:11:39 • Тема: Json распарсить двумерный массив • Форум: Если скрипт не работает

Ответов: 2
Просмотров: 3447
Если у тебя закодированы только массивы и только одномерные, то тебе подойдет эта функция:
PHP:
скопировать код в буфер обмена
  1. function double_json_decode($jstr) {
  2.  
  3.         if(!is_string($jstr)) return -1;
  4.         $elem_count = substr_count($jstr, "],[") + 1;
  5.  
  6.         if($elem_count == 1) return json_decode($jstr);
  7.  
  8.         $jstr = substr($jstr, 1, -1);
  9.         while($elem_count--) {
  10.                 $cur_arr = strstr($jstr, ']', true).']';
  11.                 $res_arr[] = json_decode($cur_arr);
  12.                 $jstr = substr($jstr, strlen($cur_arr)+1);
  13.         }
  14.  
  15.         return $res_arr;
  16. }

Если нужно обрабатывать многомерные массивы, докрути эту функцию сам Улыбка
MADONZY Отправлено: 03 Мая, 2014 - 15:11:04 • Тема: SOAP vs. XML-RPC • Форум: HTTP и PHP

Ответов: 0
Просмотров: 625
Привет всем)
У меня (может и странный) вопрос. Можно ли работать с SOAP без создания *.wsdl файла? К примеру принимать и отправлять автоматически генерируемые XML данные с stdin (так как это реализовано в XML-RPC) ?
Зарание благадарю за ответ Улыбка
MADONZY Отправлено: 23 Апреля, 2014 - 15:25:02 • Тема: Вычесть из одной даты другую • Форум: Вопросы новичков

Ответов: 3
Просмотров: 209
justikim пишет:
Выводит -16183

невозможно, так как если в базе хранится правильная метка времени нажатия кнопки то число отричательным быть не может ну и соответственно если положительное число делить на положительное число 24 - то и ответ будет положительным. Возможно что-то не так с датой в БД.
MADONZY Отправлено: 23 Апреля, 2014 - 01:35:18 • Тема: АнтиБрут • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 35
заганяй в куки 2 поля timestep и couner и проверяй число в счетчике. Если < 10 - пускай вводит. Если >= 10 то отнимай от time() $_COOKIE['timestep'] и если данной знчение меньше чем 24*60*60 (это секунды = 1 день) то не пускай, а если больше или равно - обнуляй его счетчики и давай ещё 5 попыток Улыбка
MADONZY Отправлено: 23 Апреля, 2014 - 01:07:36 • Тема: Вычесть из одной даты другую • Форум: Вопросы новичков

Ответов: 3
Просмотров: 209
Вот так:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT* FROM $userstable";
  2. $res = mysql_query($query) or die(mysql_error());
  3. $mass = mysql_fetch_assoc($res);
  4. $iResult=floor((time() - strtotime($mass['time']))/60/60/24);
  5. echo $iResult."<br>";


Так будет показано сколько дней назад. Если хочешь часов - убери деление на 24, хочешь минут - убери одно деление на 60 и так далее)
MADONZY Отправлено: 22 Апреля, 2014 - 23:19:29 • Тема: Получение данных из БД со второго раза • Форум: Вопросы новичков

Ответов: 9
Просмотров: 259
не могу ничего сказать не видя кода целиком, к сожалению...
MADONZY Отправлено: 22 Апреля, 2014 - 23:10:31 • Тема: Получение данных из БД со второго раза • Форум: Вопросы новичков

Ответов: 9
Просмотров: 259
а куда вставили то? можно код целиком?
MADONZY Отправлено: 22 Апреля, 2014 - 22:57:50 • Тема: Получение данных из БД со второго раза • Форум: Вопросы новичков

Ответов: 9
Просмотров: 259
Это абсолютно нормально! Поставь после всех отправок в СУБД строчку:

да будет свет Победа
MADONZY Отправлено: 22 Апреля, 2014 - 21:42:29 • Тема: убрать нули в начале числа • Форум: Вопросы новичков

Ответов: 9
Просмотров: 1295
Попробуй так:
PHP:
скопировать код в буфер обмена
  1. $a = 0000.00001000;
  2. $c = sprintf("%lf", $a);
  3. echo $c;

(Добавление)
ну или так (что-бы в конце вообще небыло нулей)
PHP:
скопировать код в буфер обмена
  1. function conv($num) {
  2.  
  3.         if(!is_double($num)) return $num;
  4.         $num++;
  5.         $num = (string)$num;
  6.         $num[0] = $num[0] - 1;
  7.         return $num;
  8.  
  9. }
MADONZY Отправлено: 22 Апреля, 2014 - 02:17:16 • Тема: Возврат функцией массива? Как? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 79
Всем привет)
Скажите пожалуйста, как выглядит операция возврата функцией массива в памяти. Если грубо проводить паралель с С++, то это невозможно (если конечно это массив, в прямом смысле этого слова), так как один адрес памяти не может указывать на несколько ячеек в стэке (или куче, не имеет значение в даной ситуации). Возможно это только лишь если передаваемое значение объект, а не массив. Может PHP всё-таки передает объект, создавая илюзию передачи массива? Или как?
MADONZY Отправлено: 21 Апреля, 2014 - 23:02:45 • Тема: запись в файл "IP Адрес посетителя, который зашел на сайт, или страницу" • Форум: Вопросы новичков

Ответов: 3
Просмотров: 549
я делал по аналогии языка C Улыбка
но видимо так как предложил Строитель мобильнее))))
MADONZY Отправлено: 21 Апреля, 2014 - 22:46:26 • Тема: запись в файл "IP Адрес посетителя, который зашел на сайт, или страницу" • Форум: Вопросы новичков

Ответов: 3
Просмотров: 549
PHP:
скопировать код в буфер обмена
  1. $file = fopen("user-ip.txt", "a");
  2. fwrite($file, $_SERVER['REMOTE_ADDR']."\n");
  3. fclose($file);

вот так?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB