PHP.SU

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

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

> Найдено сообщений: 91
and_07 Отправлено: 28 Марта, 2014 - 13:52:06 • Тема: Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in W:\home\localhost\www\dot\lib\database_class.php on line 147 • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 1061
а где function?

and_07 Отправлено: 28 Марта, 2014 - 11:25:34 • Тема: Пространство имет js • Форум: Вопросы новичков

Ответов: 4
Просмотров: 185
(еще по теме)
http://addyosmani[dot]com/resources/[dot][dot][dot]atternjavascript
and_07 Отправлено: 28 Марта, 2014 - 08:45:14 • Тема: Пространство имет js • Форум: Вопросы новичков

Ответов: 4
Просмотров: 185
как то так
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var test =(function(){
  3. return {
  4. fn1:function(){alert('sdf');}
  5. }
  6. })();
  7. test.fn1()
  8. ;


не успел (
and_07 Отправлено: 26 Февраля, 2014 - 14:39:20 • Тема: Парсинг xml response • Форум: XML и его обработка

Ответов: 4
Просмотров: 1973
я бы сделал с помощью xpath (но можно и регуляркой)
and_07 Отправлено: 25 Февраля, 2014 - 08:11:22 • Тема: обработка массива • Форум: Хранение данных, их вывод и обработка

Ответов: 5
Просмотров: 1601
всем пасиб
думаю тема закрыта
and_07 Отправлено: 24 Февраля, 2014 - 14:43:13 • Тема: обработка массива • Форум: Хранение данных, их вывод и обработка

Ответов: 5
Просмотров: 1601
))) я понимаю что лучше
только эт не решает задачу
and_07 Отправлено: 24 Февраля, 2014 - 14:10:35 • Тема: обработка массива • Форум: Хранение данных, их вывод и обработка

Ответов: 5
Просмотров: 1601
исходные данные файл
PHP:
скопировать код в буфер обмена
  1.  
  2. Все товары
  3. Все товары / Авто
  4. Все товары / Авто / Автокосметика
  5. Все товары / Авто / Автокосметика / Автошампуни
  6. Все товары / Авто / Автокосметика / Автоэмали
  7. Все товары / Авто / Автокосметика / Грунтовка
  8. Все товары / Авто / Автокосметика / Нанопокрытия
  9. Все товары / Авто / Автокосметика / Очистители
  10. Все товары / Авто / Автокосметика / Полироли
  11. Все товары / Авто / Автокосметика / Шпатлевка
  12. Все товары / Авто / Автохимия
  13. Все товары / Авто / Автохимия / Антикоры
  14. Все товары / Авто / Автохимия / Антифризы
  15. Все товары / Авто / Автохимия / Герметики
  16.  



1 читаю из файла получаю массив
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(
  3. 0 =>Все товары,
  4. 1=> Все товары / Авто
  5. ....
  6. )
  7.  



2 далее перевожу массив в такой вид
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(
  3. 0 =>Все товары,
  4. 1=> array(
  5.            0=> Все товары,
  6.            1=> Авто
  7. ),
  8. 2=>array(
  9.            0=> Все товары,
  10.            1=> Авто,
  11.            2 => Автокосметика
  12. ),
  13. ....
  14. )
  15.  





не удается построить массив с ерархией

PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(
  3. 'Все товары' => array(
  4.                                    'Авто'=>array(
  5.                                            'Автокосметика'=> array(
  6.                                             0=> Автошампуни,
  7.                                             1=> Автоэмали,
  8.                                             ....
  9.                                            )
  10.                                      ),
  11.  
  12.        ),
  13. ....
  14. )
  15.  
  16.  
and_07 Отправлено: 29 Октября, 2013 - 15:56:56 • Тема: xPath получить значение по атрибуту name="Тип" • Форум: XML и его обработка

Ответов: 2
Просмотров: 2687
спасиб я в курсе
под конец рабочего дня жестко туплю
тема закрыта
and_07 Отправлено: 29 Октября, 2013 - 15:35:39 • Тема: xPath получить значение по атрибуту name="Тип" • Форум: XML и его обработка

Ответов: 2
Просмотров: 2687
1) если атрибут латиницей то все работает!!

метод (выкинул лишнее что бы не мешалось)
PHP:
скопировать код в буфер обмена
  1.  
  2.         public static function read_xml($filename){
  3.                 try{
  4.                         if (file_exists($filename)) {
  5.                                
  6.                                 $yml_catalog = simplexml_load_file($filename);
  7.                                 unlink($filename);
  8.                                 if(!$yml_catalog)
  9.                                         throw new Exception("Файл поврежден");
  10.                                 $offer = $yml_catalog->xpath('//shop/offers/offer');
  11.  
  12.                                 $yml_array = array();
  13.                                 foreach($offer as $o)
  14.                                 {
  15.                                         foreach($o as $k=>$v)
  16.                                         {
  17.                                                 if($k === 'param'){
  18.                                                         $tmp = $o->xpath('param[@name="'.$v->attributes()->name[0].'"]');
  19.                                                         $stmp= (string)$tmp[0];
  20.                                                         $yml_array[(string)$v->attributes()->name[0]] = (isset($stmp) && !empty($stmp))?(string)$tmp[0]:null;
  21.                                                 }else{
  22.                                                         $yml_array[(string)$k] = !empty($o->$k)?(string)$o->$k:null;
  23.                                                 }
  24.                                         }
  25.                                         unset($yml_array);
  26.                                 }
  27.                                 unset($yml_array);
  28.                                 $files_to_zip = array(
  29.                                         $filename
  30.                                 );
  31.                                                
  32.                         } else {
  33.                                 exit('Не удалось открыть файл!!!');
  34.                         }
  35.  
  36.                 }catch(Exception $e){
  37.                         echo $e->getMessage();
  38.                 }
  39.         }
  40.  


данные
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="windows-1251"?>
  3. .....
  4.       <offer id="19928165" available="true">
  5.         <url>http://www.ozon.ru/context/detail/id/19928165/?from=prt_xml_facet</url>
  6.         <price>521</price>
  7.         <currencyId>RUR</currencyId>
  8.         <categoryId>1164326</categoryId>
  9.         <categoryId>1167155</categoryId>
  10.         <categoryId>1165293</categoryId>
  11.         <categoryId>1162204</categoryId>
  12.         <picture>http://www.ozon.ru/multimedia/audio_cd_covers/1005839109.jpg</picture>
  13.         <delivery>true</delivery>
  14.         <orderingTime>
  15.           <ordering>На складе</ordering>
  16.         </orderingTime>
  17.         <name>Сучкорез FIT мини, 317 мм. 77115</name>
  18.         <vendor>FIT</vendor>
  19.         <vendorCode>77115</vendorCode>
  20.         <description>Сучкорез FIT мини применяется при работе в саду или на приусадебном участке для срезания сухих, поврежденных или больных веток, а также для формирования кроны деревьев и кустарников. Инструмент небольшого размера, благодаря чему его удобно хранить и работать среди плотно растущих веток.</description>
  21.         <barcode>8404880771159</barcode>
  22.         <param name="Тип">Сучкорез</param>
  23.         <param name="Упаковка">Без упаковки</param>
  24.         <param name="Год выпуска">2013</param>
  25.       </offer>
  26. ......
  27.  


Суть проблемы не видит теги с атрибутами

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         <param name="Тип">Сучкорез</param>
  3.         <param name="Упаковка">Без упаковки</param>
  4.         <param name="Год выпуска">2013</param>
  5.  


с латинскими названиями все работает
(Добавление)
тема закрыта
and_07 Отправлено: 25 Сентября, 2012 - 09:25:56 • Тема: что то типа CI • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1257
всем доброго времени суток
в общем не претендую на оригинальность просто вдруг кому будет интересно
данный код взял с какогото урока или книги и чуть переделал
что бы работал так controller/metod/param1/...../pa ramN
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class Router{
  4.   protected $_controller;
  5.   protected $_action;
  6.   protected $_params;
  7.   static $_instance;
  8.  
  9.   public static function getInstance(){
  10.         if(!(self::$_instance instanceOf self ))
  11.                 self::$_instance = new self();
  12.         return self::$_instance;
  13.   }
  14.  
  15.   private function __construct(){
  16.                 $request = $_SERVER['REQUEST_URI'];
  17.                 $splits = explode('/',trim($request,'/'));
  18.       //conrtoller
  19.                 //ucfirst($splits[1])
  20.                 $this->_controller = !empty($splits[0])? $splits[0].'Controller':'indexController';
  21.                
  22.       //method 
  23.                 $this->_action = !empty($splits[1])?$splits[1].'Action':'indexAction';
  24.                  
  25.       //params
  26.                 if (!empty($splits[2])){
  27.                         $value = array();
  28.                         for($i=2,$cnt=count($splits);$i<$cnt;$i++)
  29.                                 $value[] = $splits[$i];
  30.                         $this->_params = $value;                     
  31.                 }    
  32.   }
  33.        
  34.   public function route(){
  35.         if(class_exists($this->getController())){
  36.                 $rc = new ReflectionClass($this->getController());
  37.                 $rm = new ReflectionMethod($this->getController(), $this->getAction());
  38.                 $class =  get_parent_class($this);
  39.                 var_dump($rc->name); //просто так
  40.                         if(get_parent_class($rc->name) == 'BaseController'){
  41.                                 if($rc->hasMethod($this->getAction())){
  42.                                 $controller = $rc->newInstance();
  43.                                 $method = $rc->getMethod($this->getAction());
  44.                                  /***********************************
  45.                                  if($method->isStatic())
  46.                                     $method->invoke(null);     
  47.                                  else
  48.                                 // *********************************/
  49.               $par = $rm->getParameters();
  50.               if($par && $this->getParams()!=0){  
  51.                  $rm->invokeArgs($controller, $this->getParams());
  52.                }//else { throw new Exception("Params"); }  */                              
  53.                                     $method->invoke($controller);                              
  54.                                 } else { throw new Exception("Action"); }
  55.                         } else { throw new Exception("Interface");}
  56.         } else { throw new Exception("Controller");}
  57.   }
  58.  
  59.   function getController(){
  60.         return $this->_controller;
  61.   }
  62.  
  63.   function getAction(){
  64.         return $this->_action;
  65.   }
  66.  
  67.   function getParams(){
  68.         return $this->_params;
  69.   }
  70. }
  71. ?>
  72.  


index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.  require 'inc/init.php';
  5.  
  6. $front = Router::getInstance();
  7. $front->route();
  8. ?>
  9.  


на недочеты прошу указывать
and_07 Отправлено: 21 Сентября, 2012 - 20:54:09 • Тема: тестовый класс ООП • Форум: Объектно-ориентированное программирование

Ответов: 26
Просмотров: 6453
Ясно Всем СПАСИБО думаю тема закрыта до новой реализации класса DataClass
and_07 Отправлено: 21 Сентября, 2012 - 20:44:32 • Тема: тестовый класс ООП • Форум: Объектно-ориентированное программирование

Ответов: 26
Просмотров: 6453
Спасибо armancho7777777 за совет
обязательно посмотрю данную книгу
Вас что то насторожило в коде помимо класса DataClass
данный пример старался писать на у ровне интерфейсов а не классов
(в данный момент читаю "паттерны проектирования эрика фримена и элизабет фримен")
and_07 Отправлено: 21 Сентября, 2012 - 20:00:06 • Тема: тестовый класс ООП • Форум: Объектно-ориентированное программирование

Ответов: 26
Просмотров: 6453
Всем доброго времени суток всем спасибо еще раз
понял все недочеты
но хотел бы уточнить суть данного тестового класса
неоходимо было написать гостевую книгу с возможностью добовлять удалять и редактировать ну и банить по IP ( и использовать как можно больше ООП)
база не имеет значения
впринципе я старался реализовать как можно более удобный вариант интерфейса гостевой книги (ну и не уделил должного внимания на безопастность в БД Недовольство, огорчение(( )
and_07 Отправлено: 21 Сентября, 2012 - 13:05:01 • Тема: тестовый класс ООП • Форум: Объектно-ориентированное программирование

Ответов: 26
Просмотров: 6453
Всем доброго времени суток спасибо за комментарии учту но хотелось бы услышать что нибудь о реализации композиции или наследования и вообще если я реализую singleton разве такая конструкция будет нормально работать

PHP:
скопировать код в буфер обмена
  1.  
  2. $GB = new GuestBook( DataClass::getInstance()) ;
  3.  

(Добавление)
что в данном случае уместнее использовать композицию или наследование
and_07 Отправлено: 20 Сентября, 2012 - 20:40:29 • Тема: тестовый класс ООП • Форум: Объектно-ориентированное программирование

Ответов: 26
Просмотров: 6453
Прошу указать фрагменты которые можно улучшить в данном коде

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. define('DBHOST','localhost');
  5. define('DBUSER','');
  6. define('DBPASS','');
  7. define('DBNAME','');
  8.  
  9. ?>
  10. <?PHP
  11.  
  12. interface BaseData
  13. {
  14.     function query($sql);
  15.     function insert( $table, $data );
  16.     function update( $table, $changes, $condition );
  17.     function delete( $table, $condition, $limit );
  18. }
  19.  
  20. ?>
  21.  
  22.  
  23. <?PHP
  24.  
  25. class DataClass implements BaseData
  26. {
  27.         private static $_instance;
  28.  
  29.         private $_connection;
  30.         private $results;
  31.  
  32.         public function __construct()
  33.         {
  34.                 $this->_connection = mysql_connect(DBHOST, DBUSER, DBPASS) or die(mysql_error());
  35.                 mysql_select_db(DBNAME) or die(mysql_error());
  36.         }
  37.          
  38.         public function __destruct()
  39.         {
  40.                 @mysql_close($this->_connection);
  41.         }
  42.  
  43.   public function delete( $table, $condition, $limit)
  44.     {
  45.         $limit = ( $limit == '' ) ? '' : ' LIMIT ' . $limit;
  46.         $delete = "DELETE FROM {$table} WHERE {$condition} {$limit}";
  47.         $this->query( $delete );
  48.     }
  49.  
  50.     public function update( $table, $changes, $condition )
  51.     {
  52.         $update = "UPDATE " . $table . " SET ";
  53.         foreach( $changes as $field => $value )
  54.         {
  55.             $update .= "`" . $field . "`='{$value}',";
  56.         }
  57.  
  58.         $update = substr($update, 0, -1);
  59.         if( $condition != '' )
  60.         {
  61.             $update .= "WHERE " . $condition;
  62.         }
  63.  
  64.         $this->query( $update );
  65.  
  66.         return true;
  67.     }
  68.  
  69.     public function insert( $table, $data )
  70.     {
  71.         $fields  = "";
  72.         $values = "";
  73.  
  74.         foreach ($data as $f => $v)
  75.         {
  76.  
  77.             $fields  .= "`$f`,";
  78.             $values .= ( is_numeric( $v ) && ( intval( $v ) == $v ) ) ? $v."," : "'$v',";
  79.  
  80.         }
  81.  
  82.         $fields = substr($fields, 0, -1);
  83.         $values = substr($values, 0, -1);
  84.  
  85.         $insert = "INSERT INTO $table ({$fields}) VALUES({$values})";
  86.         $this->query( $insert );
  87.         return true;
  88.     }
  89.  
  90.     public function query( $queryStr )
  91.     {
  92.                 if ($this->_connection === false) {
  93.             die('No Database Connection Found.');
  94.         }
  95.  
  96.         $result = @mysql_query($queryStr,$this->_connection);
  97.         if ($result === false) {
  98.             die(mysql_error());
  99.         }
  100.         return $result;
  101.     }
  102.        
  103.         public function fetch($sql)
  104.         {
  105.                 $result = $this->query($sql);
  106.                  $ret = array();
  107.                          while ($row = mysql_fetch_assoc($result))
  108.                          {
  109.                                         $ret []= $row;
  110.                          }
  111.                  return ($ret);
  112.     }  
  113.          
  114. }
  115. ?>
  116.  
  117.  
  118. <?PHP
  119.  
  120. class GuestBook
  121. {
  122.     private $db;
  123.         private $table = "guestbook";
  124.        
  125.     public function __construct( BaseData $db)
  126.     {
  127.                 $this->db = $db;
  128.     }
  129.    
  130.     public function checkunique($email)
  131.     {
  132.        $this->db->query("SELECT * FROM `".$this->table."` WHERE email='$email'");
  133.     }
  134.    
  135.     public function add($data)
  136.     {
  137.             $this->db->insert( $this->table, $data );
  138.     }
  139.        
  140.     public function delete($condition, $limit)
  141.     {
  142.             $this->db->delete( $this->table, $condition, $limit );
  143.     }  
  144.        
  145.     public function update( $changes, $condition )
  146.     {
  147.             $this->db->update($this->table, $changes, $condition );
  148.     }  
  149.        
  150.     public function query($sql)
  151.     {
  152.         $this->db->query($sql);
  153.     }  
  154.  
  155.     public function create()
  156.     {
  157.                 $sql ="
  158.                 CREATE TABLE IF NOT EXISTS `".$this->table."` (
  159.                   `id` int(10) unsigned NOT NULL auto_increment,
  160.                   `parent_id` int(10) ,
  161.                   `name` varchar(255) default '',
  162.                   `email` varchar(255) default '',
  163.                   `description` varchar(255) default '',
  164.                   `when` int(11) NOT NULL default '0',
  165.                   `ip` varchar(20) default NULL,         
  166.                   PRIMARY KEY  (`id`)
  167.                 ) ENGINE=MyISAM DEFAULT CHARSET=utf8"; 
  168.        
  169.         $this->db->query($sql);
  170.     }
  171.        
  172.     public function fetch($sql)
  173.     {
  174.         return $this->db->fetch($sql);
  175.     }          
  176.        
  177.         public function get_ip() {
  178.                 $ip = "0.0.0.0";
  179.                 if( ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) && ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) {
  180.                         $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  181.                 } elseif( ( isset( $_SERVER['HTTP_CLIENT_IP'])) && (!empty($_SERVER['HTTP_CLIENT_IP'] ) ) ) {
  182.                         $ip = explode(".",$_SERVER['HTTP_CLIENT_IP']);
  183.                         $ip = $ip[3].".".$ip[2].".".$ip[1].".".$ip[0];
  184.                 } elseif((!isset( $_SERVER['HTTP_X_FORWARDED_FOR'])) || (empty($_SERVER['HTTP_X_FORWARDED_FOR']))) {
  185.                         if ((!isset( $_SERVER['HTTP_CLIENT_IP'])) && (empty($_SERVER['HTTP_CLIENT_IP']))) {
  186.                                 $ip = $_SERVER['REMOTE_ADDR'];
  187.                         }
  188.                 }
  189.                 return $ip;
  190.         }      
  191.                
  192. }
  193. ?>
  194.  
  195.  
  196. <?PHP
  197.  
  198.  $GB = new GuestBook( new  DataClass()) ;
  199. //$GB->create();
  200. /*
  201.  $arr=array();
  202.  $arr["name"]   = 'test';
  203.  $arr["email"] = 'test@te.te';
  204.  $arr["description"]= 'bla bla bla';
  205.  $arr["when"] =123;
  206.  $arr["ip"] ='127.0.1';
  207.  
  208.  $arr1=array();
  209.  $arr1["name"]   = 'test2';
  210.  $arr1["email"] = 'test@te.te';
  211.  $arr1["description"]= 'bla bla bla';
  212.  $arr1["when"] =2;
  213.  $arr1["ip"] = $GB->get_ip();
  214.  
  215.   $GB->add( $arr);
  216.   $GB->update( $arr1,'id=4');
  217.   $GB->delete('name ="test" ' ,2);*/
  218.  
  219.         $sql ="select * from guestbook ";
  220.         $res =$GB->fetch($sql) ;
  221.         $ip = $GB->get_ip();
  222.  
  223. ?>
  224.  
  225.  
  226.  
  227.  

Страниц (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