PHP.SU

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

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

> Найдено сообщений: 131
razorg1991 Отправлено: 22 Августа, 2014 - 20:59:16 • Тема: CURL имитация браузера • Форум: Вопросы новичков

Ответов: 7
Просмотров: 606
Не подскажите как с помощью CURL корректно симтировать запрос браузера, так чтобы загрузился весь сайт с CSS и картинками?
Просто с помощью file_get_content как-то криво некоторые сайты загружаются, бывает полностью отсутствует CSS и не все картинки есть.
razorg1991 Отправлено: 23 Июля, 2014 - 16:53:16 • Тема: Почему в одном случае скрипт работает, а в другом нет • Форум: Вопросы новичков

Ответов: 6
Просмотров: 259
DelphinPRO пишет:
Как же мы можем это сказать, если не знаем как у вас система устроена?
Насколько я понимаю, роутер должен первым обрабатывать запрос и сохранять свое состояние до окончания работы скрипта.

Да я просто уже не раз этот роутер выставлял на форум, подумал что многие уже видели его, и Вы кстати тоже отвечали в тех темах, вот и не выставил весь код Радость
Вобщем вся проблема сводится к тому, что я никак не могу вписать вызов контента в нужное мне место.
Изначально проблема была описана в этой теме http://forum.php.su/topic.php?fo...&topic=14757
А здесь я уже сам попытался решить свою проблему, но как видите мне пока что это не сильно удалось.
На момент написания этой темы в роутере были добавлены 2 свойства controller и action, и соответственно строки 18 и 26 роутера (смотрите ссылку на тему) были изменены с обычной переменной на присвоение свойству. self::$controller = new $this->controller_name;
self:$action = $this->action_name;
Получается что в методе run такой вызов работает, но выводит основной контент где попало (после всей страницы), а если вынести его в docs, то не работает.
razorg1991 Отправлено: 23 Июля, 2014 - 16:13:27 • Тема: Почему в одном случае скрипт работает, а в другом нет • Форум: Вопросы новичков

Ответов: 6
Просмотров: 259
DlTA пишет:
razorg1991 пишет:
Route::$controller, Route::$action
а уверены что данные инициализированы?

Я ж написал что во втором случае Route::$controller выдаёт null.
Значит инициализация не проходит, соответственно и спрашиваю как мне тогда правильно передать в Docs, $controller из Route?
razorg1991 Отправлено: 23 Июля, 2014 - 08:53:05 • Тема: Почему в одном случае скрипт работает, а в другом нет • Форум: Вопросы новичков

Ответов: 6
Просмотров: 259
Сделал var_dump для первого и второго случая.
В первом все норм

object(Main)#3 (1) { ["objm":protected]=> array(0) { } }

А вот во втором

NULL Огорчение

Не могу сообразить как мне тогда правильно передать в Docs, $controller из Route?
razorg1991 Отправлено: 22 Июля, 2014 - 21:39:50 • Тема: Почему в одном случае скрипт работает, а в другом нет • Форум: Вопросы новичков

Ответов: 6
Просмотров: 259
PHP:
скопировать код в буфер обмена
  1.  
  2. class Route {
  3.        
  4.         // свойства
  5.        
  6.         public function run()
  7.     {
  8.        
  9.         // всякие проверки
  10.         // вызов
  11.           call_user_func(array(self::$controller, self::$action));
  12.              
  13.     }
  14. }
  15.  


Вот так работает.
А если так
PHP:
скопировать код в буфер обмена
  1.  
  2. class Docs {
  3.            static function LoadContent() {
  4.                call_user_func(array(Route::$controller, Route::$action));
  5.            }
  6. }
  7.  

И соответственно вызов в шаблоне
PHP:
скопировать код в буфер обмена
  1.  
  2. <div class="main_content">
  3.       <!-- Основной контент -->
  4.       <?PHP Docs::LoadContent(); ?>
  5. </div>
  6.  


То в этом случае выдает ошибку Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in W:\home\localhost\www\rz-parser\core\lib\Docs.php on line 6

Не могу понять хоть убейте Не понял
razorg1991 Отправлено: 22 Июля, 2014 - 09:02:05 • Тема: Вывод основного блока контента там где это нужно • Форум: Вопросы новичков

Ответов: 0
Просмотров: 119
Чето не могу придумать как вывести основной блок контента там, где это нужно, а конкретно нужно в определенном диве.
Структура MVC
Хочу реализовать вывод контента подобно вызову модулей. Вызов модулей в шаблоне я осуществил так:

Инициализация в шаблоне
PHP:
скопировать код в буфер обмена
  1.  
  2. <div class="wrapper">
  3.                         <h1><a href="index.html">logo</a></h1>
  4.                         <div class="fright">
  5.                             <div class="indent">
  6.                                 <?PHP Module::Load("contact", "none"); ?>
  7.                             </div>
  8.                         </div>
  9.                     </div>
  10.  


Класс Module
PHP:
скопировать код в буфер обмена
  1.  
  2.         class Module {
  3.            static function Load($modname, $modstyle) {
  4.                if($modstyle !== "none") {
  5.                    if(!file_exists(Config::$template_folder.Config::$template.'/mod_styles/'.$modstyle.'_style.php')) {
  6.                        echo 'Файл '.$modstyle.'_style.php не существует!';
  7.                    return self::mod_body($modname);
  8.                    }
  9.                else {
  10.                        require_once Config::$template_folder.Config::$template.'/mod_styles/'.$modstyle.'_style.php';
  11.                }
  12.                }
  13.            else {
  14.                    return self::mod_body($modname);
  15.            }        
  16.            }
  17.        
  18.        static function mod_body($modname) {
  19.            $modclassname = "mod_".$modname;
  20.            if(class_exists($modclassname)){
  21.                 $modobj = new $modclassname;
  22.                 call_user_func(array($modobj, "getmodule"));
  23.                 }
  24.            else {
  25.                 echo "Модуль ".$modname." не существует!";
  26.            }
  27.        }
  28.         }
  29.  

А вот с контентом не хватает фантазии что-то Не понял

Базовый контроллер
PHP:
скопировать код в буфер обмена
  1.  
  2. abstract class BaseController {
  3.        
  4.         // массив для объектов моделей
  5.         protected $objm = array();
  6.        
  7.         public function __construct() {
  8.            
  9.             // создаем объекты моделей при вызове контроллера
  10.             foreach ($this->objm as $obj => $classmodel) {
  11.                 $this->objm[$obj] = new $classmodel;
  12.             }
  13.            
  14.             // вызываем метод подключения тела страницы
  15.             return $this->get_body();
  16.         }
  17.                
  18.         // подключаем вид для экшена контроллера
  19.         public function view($view) {
  20.             $path_view = Config::$view_folder.$view.'.php';
  21.            
  22.             if(file_exists($path_view)){
  23.                 require_once $path_view;
  24.             }
  25.            
  26.             else {
  27.                 echo 'Файл'.$view.'.php не существует!';
  28.             }
  29.         }
  30.        
  31.         // метод подключения тела страницы
  32.         public function get_body() {
  33.             include 'tpl.php';
  34.         }
  35.     }
  36.  


Соответственно в любом из контроллеров пишу примерно следующее (в примере ниже пока без участия БД)

PHP:
скопировать код в буфер обмена
  1.  
  2. class Main extends BaseController {
  3.            public function index() {
  4.                $this->view('main');
  5.            }
  6.         }
  7.  


Ну и соответственно вид main.php
PHP:
скопировать код в буфер обмена
  1.  
  2. echo 'Главная страница проекта!';
  3.  


Оно то все выводит, но не там где это нужно Ха-ха В конце страницы перед закрытием body.

Как же мне его вывести к примеру здесь
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div class="main_content">
  3.    <!-- Основной контент -->
  4. </div>
  5.  


А точнее как реализовать подобный класс для вывода контента, ведь контент (а точнее контроллер и экшен) вызывается через роутер. Ну или вызвать контент в том месте где это нужно

PHP:
скопировать код в буфер обмена
  1.  
  2. class Route {
  3.        
  4.         // контроллер и действие по умолчанию
  5.         public $controller_name = 'Main';
  6.         public $action_name = 'index';
  7.         public $id;
  8.        
  9.         public function run()
  10.     {
  11.        
  12.         // получаем имя контроллера
  13.         if(!empty($_GET['view'])){     
  14.             $this->controller_name = trim(strip_tags($_GET['view']));}
  15.  
  16.         if(!class_exists($this->controller_name)) {self::ErrorPage404();}
  17.         // создаем объект контроллера
  18.             $controller = new $this->controller_name;
  19.                    
  20.         // получаем имя экшена
  21.         if(!empty($_GET['action'])) {
  22.             $this->action_name = trim(strip_tags($_GET['action']));}
  23.  
  24.         if(!method_exists($controller, $this->action_name)) {self::ErrorPage404();}
  25.             // создаем экшн
  26.             $action = $this->action_name;
  27.        
  28.         // получаем id элемента
  29.         if($_GET['id']) {
  30.             $this->id = (int)trim(strip_tags($_GET['id']));
  31.         }
  32.                        
  33.         // вызываем действие контроллера
  34.           call_user_func(array($controller, $action));
  35.              
  36.     }
  37.    
  38.         static function ErrorPage404() {
  39.            
  40.             header('Location:error.php');
  41.             exit();
  42.     }
  43. }
  44.  


"Да да да это сново Я Радость "
Не забрасывайте только камнями Улыбка
razorg1991 Отправлено: 22 Июля, 2014 - 08:22:37 • Тема: Bootstrap 3.2 nav-tabs слева • Форум: HTML, Дизайн & CSS

Ответов: 2
Просмотров: 1137
Ch_chov пишет:
http://stackoverflow[dot]com/questio[dot][dot][dot]s-in-bootstrap-3


Пасиб, хоть что-то Ха-ха
Все же непонятно зачем они убрали их?!
Лучше бы оставили и по-добавляли еще боковых панелей (фиксированных, выезжающих), типа как в мобильных приложениях. Мне кажется эти панели сейчас очень актуальны и популярны Радость А то добавили какой-то непонятный Jambotron, честно сказать до сих пор так и не понял что это и с чем его едят Ха-ха
razorg1991 Отправлено: 21 Июля, 2014 - 21:38:23 • Тема: Bootstrap 3.2 nav-tabs слева • Форум: HTML, Дизайн & CSS

Ответов: 2
Просмотров: 1137
Пролистал всю документацию бутстрапа 3.2 и честно сказать я в растерянности! КУДА ДЕЛИСЬ БОКОВЫЕ ТАБЫ? Да и нижние кстати тоже?

Мне одному кажется, что бутстрап идет все больше по пути упрощения, не самому лучшему к слову?! Не понял
razorg1991 Отправлено: 19 Июля, 2014 - 08:17:15 • Тема: Боковая или верхняя панель для админки? • Форум: HTML, Дизайн & CSS

Ответов: 12
Просмотров: 1931
DelphinPRO пишет:
речь идет о фиксированных панелях, насколько я понял Улыбка тут добавляется проблем


Уже думаю, что панель будет скрываться сбоку. Нашел даже офигенный jquery плагин
Кого интересует выкидываю ссылку, плагин бесплатный

http://tympanus[dot]net/codrops/2013[dot][dot][dot]vas-navigations/

И еще один неплохой как раз для многоуровневых меню

http://tympanus[dot]net/codrops/2013[dot][dot][dot]level-push-menu/

Да и вообще у этого разработчика много всяких вкусностей, которые тоже думаю внедрить Радость
razorg1991 Отправлено: 18 Июля, 2014 - 22:15:06 • Тема: Боковая или верхняя панель для админки? • Форум: HTML, Дизайн & CSS

Ответов: 12
Просмотров: 1931
avtor.fox пишет:
От разбросанного функционала не защитят как горизонтальная, так и вертикальная панели

Не буду входить в спор!
Повторю вопрос, что лучше по вашему, какие за и против?
razorg1991 Отправлено: 18 Июля, 2014 - 21:51:16 • Тема: Боковая или верхняя панель для админки? • Форум: HTML, Дизайн & CSS

Ответов: 12
Просмотров: 1931
avtor.fox пишет:
а макет сделать, не?

Не! Я не дизайнер! Радость
avtor.fox пишет:
плюс всё зависит от несущего в ней функционала

Та то понятно! Но если этот функционал разбросан абы как, то разобраться в нем тяжко!
razorg1991 Отправлено: 18 Июля, 2014 - 21:11:54 • Тема: Боковая или верхняя панель для админки? • Форум: HTML, Дизайн & CSS

Ответов: 12
Просмотров: 1931
Делаю проект типа CMS, хотелось бы услышать мнение народа.
Какая панель по Вашему мнению лучше, функциональнее, красивее - БОКОВАЯ СЛЕВА ФИКСИРОВАННАЯ НА ВСЮ ВЫСОТУ ОКНА или ВЕРХНЯЯ ФИКСИРОВАННАЯ НА ВСЮ ШИРИНУ ОКНА ?

Делаю админку на bootstrap 3, но в нем в к сожалению нет еще пока боковых панелей (но думаю, что в будущем появятся Радость ).
Лично сам склоняюсь в сторону боковой.

В общем высказывайтесь Ха-ха
razorg1991 Отправлено: 14 Июля, 2014 - 17:18:13 • Тема: Проблемы с библиотекой simple_html_dom • Форум: Вопросы новичков

Ответов: 2
Просмотров: 246
Viper пишет:

Что показывает?


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/steelmate-signalizacija.html
  4.     [1] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-5025.html
  5.     [2] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-5024.html
  6.     [3] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/eaglemaster-signalizacija.html
  7.     [4] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija.html
  8.     [5] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4604.html
  9.     [6] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4606.html
  10.     [7] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4603.html
  11.     [8] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4605.html
  12.     [9] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4890.html
  13.     [10] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4607.html
  14.     [11] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/convoy-signalizacija-4602.html
  15.     [12] => http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii/segura-signalizacija.html
  16.     [13] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-5018.html
  17.     [14] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-4611.html
  18.     [15] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-4801.html
  19.     [16] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-4927.html
  20.     [17] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-4609.html
  21.     [18] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-4612.html
  22.     [19] => http://bat.com.ua/auto-systems/odnostoronnie-signalizacii/convoy-signalizacija-4610.html
  23.     [20] =>
  24. )
  25.  


Хм... странно, а почему последний элемент пустой? Собственно первая ошибка из-за него.
А кажется понял почему пустой Радость В файле с которого он читает после последней ссылки стоит разделитель "|" (потому как файл тоже формируется через скрипт), а значит explode считает последний элемент массива пустым Ха-ха
Так получается, что и вторая ошибка тоже из-за этого Закатив глазки Ведь объекта, то из пустого элемента массива он же не создаст )))
Собственно скрипт который формирует файл:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         require_once('simple_html_dom.php');
  4.     $html = new simple_html_dom();
  5.     $links = array(
  6.                     'http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii.html',
  7.                     'http://bat.com.ua/auto-systems/odnostoronnie-signalizacii.html'
  8.                     );
  9.     $fp = fopen("data/link_parse.txt", "w+");
  10.     foreach($links as $link) {
  11.         $html->load_file($link);
  12.         $products_link = $html->find('div.product div.product-name a');
  13.         foreach($products_link as $product_link) {
  14.             $text = $product_link->href.'|';
  15.             echo $text."<br>";
  16.             fwrite($fp,$text);
  17.         }
  18.     }
  19.     fclose($fp);
  20.     $html->clear();
  21.     unset($html);
  22. ?>
  23.  


Добавил проверку в исходный скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2. require_once('simple_html_dom.php');
  3.     $html = new simple_html_dom();
  4.     $html->load_file("data/link_parse.txt");
  5.     $urls = explode("|", $html);
  6.     echo '<pre>';
  7.     print_r($urls);
  8.     echo '</pre>';
  9.     foreach($urls as $url) {
  10.         if($url != "") {
  11.         $html->load_file($url);
  12.         echo $html->find("div#big_product div#product-title h1", 0)."<br>";
  13.         echo $html->find("div#product-parameters", 0)."<br>";
  14.         echo $html->find("div#description-wrap div.righter div#product-price", 0)."<br>";
  15.         }
  16.         else {unset($url);}
  17.     }
  18.     $html->clear();
  19.     unset($html);
  20.  


Ошибки исчезли Радость
СПАСИБО ОГРОМНОЕ ЗА ПОМОЩЬ )))
razorg1991 Отправлено: 14 Июля, 2014 - 13:37:27 • Тема: Проблемы с библиотекой simple_html_dom • Форум: Вопросы новичков

Ответов: 2
Просмотров: 246
Пишу парсер на simple_html_dom, код такой:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         require_once('simple_html_dom.php');
  4.     $html = new simple_html_dom();
  5.     $html->load_file("data/link_parse.txt");
  6.     $urls = explode("|", $html);
  7.     foreach($urls as $url) {
  8.         $html->load_file($url);
  9.         echo $html->find("div#big_product div#product-title h1", 0)."<br>";
  10.         echo $html->find("div#product-parameters", 0)."<br>";
  11.         echo $html->find("div#description-wrap div.righter div#product-price", 0)."<br>";
  12.     }
  13.     $html->clear();
  14.     unset($html);
  15. ?>
  16.  


Все работает, НО выбивают ошибки Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in W:\home\localhost\www\batparser\simple_html_dom.php on line 1081

Fatal error: Call to a member function find() on a non-object in W:\home\localhost\www\batparser\simple_html_dom.php on line 1113

Но прикол весь в том, что если грузить данные не из файла

PHP:
скопировать код в буфер обмена
  1.  
  2. $html->load_file("data/link_parse.txt");
  3.  


а к примеру из массива

PHP:
скопировать код в буфер обмена
  1.  
  2. $links = array(
  3.                     'http://bat.com.ua/auto-systems/dvuhstoronnie-signalizacii.html',
  4.                     'http://bat.com.ua/auto-systems/odnostoronnie-signalizacii.html'
  5.                     );
  6. $html->load_file($links);
  7.  


То все работает без ошибок! КАК ТАК? Не понял
ЧТО ЕМУ НЕ НРАВИТЬСЯ
razorg1991 Отправлено: 05 Июля, 2014 - 13:29:54 • Тема: Вынести часть скрипта на другой хостинг • Форум: Прочее

Ответов: 1
Просмотров: 37
Интересует вопрос защиты скриптов. Хочу вынести часть проекта на отдельный хостинг. Посоветуйте где это лучше осуществить? Читал что вроде на гитхабе на платных аккаунтах есть возможность закрытого доступа к скриптам. Только как тогда осуществить подключение к удаленному закрытому скрипту)?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB