Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Классы

 PHP.SU

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


 Страниц (1): [1]   

> Описание: разбить php код на классы
pa-bil-sag
Отправлено: 15 Марта, 2015 - 19:16:00
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Помогите разбить код на классы. Мне пример нужен, как это будет выгладить
1 класс будет содержать массивы
2 класс это функции работающие с массивом
PHP:
скопировать код в буфер обмена
  1.  
  2.             require_once('phpQuery/phpQuery.php');
  3.  
  4.             $res2Parse = array(
  5.             7 => 'minsk',
  6.             5 => 'minskaya',
  7.             );
  8.             $res2Edu = array(
  9.                 3 => 'ptu',
  10.                 4 => 'suz',
  11.                 6 => 'vuz',
  12.  
  13.             );
  14.             $resultParse=array();
  15.             $url = 'http://kudapostupat.by/zavedeniya';
  16.  
  17.             $html = file_get_contents($url);
  18.             phpQuery::newDocument($html);
  19.            /* парсинг*/
  20.             foreach($res2Parse as $key =>$value) {
  21.                 foreach($res2Edu as $k=>$v) {
  22.                     foreach (pq('#catalog_tab_'.$v.'_'.$value.' li') as $vuz){
  23.                         // ищем название марки (текст ссылки)
  24.                         $type=$k;
  25.                         if($type==4) {
  26.                             $type=3;
  27.                         }
  28.                         $resultParse[$key][$k][] = trim(pq($vuz)->find('a')->text());
  29.  
  30.                     }
  31.                 }
  32.             }
  33.  
  34.             //return  $resultParse;
  35.  
  36.              /*форматирование*/
  37.              array_walk_recursive($resultParse,'formatString');
  38.  
  39. function ucfirst_mb($str, $encoding='UTF-8')
  40. {
  41.     $str = mb_ereg_replace('^[\ ]+', '', $str);
  42.     $str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding).
  43.         mb_substr($str, 1, mb_strlen($str), $encoding);
  44.     return $str;
  45. }
  46.                function formatString(&$s)
  47.                {
  48.                   //$s=html_entity_decode()
  49.                   //$s=strip_tags($s);
  50.                   $pattern=array(
  51.                       // оставляем разрешенные
  52.                       'space' => '/[^a-zа-яё0-9\s\.\"\'\«»]{1,}/ui',
  53.                      // преобразуем  кавычки в "
  54.                       'qoute' => '/[\'\«»]+/ui',
  55.                       // текст до первой кавычки
  56.                       'empty' => '/((^[a-zа-яё0-9\s\.]+(?<=\"){1})/ui',
  57.                       // удаляем кавычки
  58.                        'other' => '/[\"]+/ui',
  59.                       // удаляем двойные пробелы
  60.                       'doubling' => '/(\s){2,}/ui',
  61.                   );
  62.                   $replacement=array(
  63.                       'space'=>' ',
  64.                       'qoute' => '"',
  65.                       'empty'=>'',
  66.                       'other'=> ' ',
  67.                       'doubling' => ' ',
  68.                   );
  69.                   $s=trim(preg_replace($pattern,$replacement,$s));
  70.                   $s=ucfirst_mb($s);
  71.                    if(mb_strlen($s)>127) {
  72.                        //обрезаем до 127 символов
  73.                    }
  74.  
  75.                }
  76.     array_walk_recursive($resultParse,'customFilter');
  77. function customFilter(&$s)
  78. {
  79.     $options = array(
  80.         'options' => array(
  81.             'regexp' => 'первая бува заглавная, остальные маленькие',
  82.         ),
  83.     );
  84.     $filter=filter_var($s,FILTER_VALIDATE_REGEXP,$options);
  85.     if(!$filter) {
  86.      $s='_'.$s;
  87.     }
  88. }
 
 Top
exlant
Отправлено: 15 Марта, 2015 - 21:25:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




берете и засовываете свои массивы и функции в класс, чего здесь непонятного?
или вам пример класса нужен? Если да, то в нете таких примеров навалом...
 
 Top
GoDr
Отправлено: 16 Марта, 2015 - 08:46:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




что то какай-то набор непонятного кода... показаны функции которые не используются и не показаны те, которые задействованы...

PHP:
скопировать код в буфер обмена
  1. require_once('phpQuery/phpQuery.php');
  2.  
  3. $resultParse = array();
  4.  
  5. $url = 'http://kudapostupat.by/zavedeniya';
  6.  
  7. $html = file_get_contents($url);
  8.  
  9. phpQuery::newDocument($html);
  10.  
  11. $CLASS = new ArrayFunc();
  12. /* парсинг*/
  13. $CLASS->parsing();
  14.  
  15. //return  $resultParse;
  16.  
  17. /*форматирование*/
  18. array_walk_recursive($resultParse, 'formatString');
  19.  
  20.  
  21.  
  22. array_walk_recursive($resultParse, 'customFilter');
  23.  
  24.  
  25.  
  26. class ArrayValue
  27. {
  28.     protected $res2Parse = array(
  29.         7 => 'minsk',
  30.         5 => 'minskaya'
  31.     );
  32.     protected $res2Edu = array(
  33.         3 => 'ptu',
  34.         4 => 'suz',
  35.         6 => 'vuz'
  36.     );
  37. }
  38.  
  39. class ArrayFunc extends ArrayValue
  40. {
  41.  
  42.     public function parsing(){
  43.         foreach ($this->res2Parse as $key => $value) {
  44.             foreach ($this->res2Edu as $k => $v) {
  45.                 foreach (pq('#catalog_tab_' . $v . '_' . $value . ' li') as $vuz) {
  46.                     // ищем название марки (текст ссылки)
  47.                     $type = $k;
  48.                     if ($type == 4) {
  49.                         $type = 3;
  50.                     }
  51.  
  52.                     $resultParse[$key][$k][] = trim(pq($vuz)->find('a')->text());
  53.                 }
  54.             }
  55.         }
  56.  
  57.     }
  58.  
  59.     public function ucfirst_mb($str, $encoding = 'UTF-8')
  60.     {
  61.         $str = mb_ereg_replace('^[\ ]+', '', $str);
  62.         $str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) .
  63.             mb_substr($str, 1, mb_strlen($str), $encoding);
  64.         return $str;
  65.     }
  66.  
  67.     public function formatString(&$s)
  68.     {
  69.         $pattern = array(
  70.             'space' => '/[^a-zа-яё0-9\s\.\"\'\«»]{1,}/ui',
  71.             'qoute' => '/[\'\«»]+/ui',
  72.             'empty' => '/((^[a-zа-яё0-9\s\.]+(?<=\"){1})/ui',
  73.             'other' => '/[\"]+/ui',
  74.             'doubling' => '/(\s){2,}/ui',
  75.         );
  76.         $replacement = array(
  77.             'space' => ' ',
  78.             'qoute' => '"',
  79.             'empty' => '',
  80.             'other' => ' ',
  81.             'doubling' => ' ',
  82.         );
  83.         $s = trim(preg_replace($pattern, $replacement, $s));
  84.         $s = $this->ucfirst_mb($s);
  85.         if (mb_strlen($s) > 127) {
  86.         }
  87.  
  88.     }
  89.  
  90.     public function customFilter(&$s)
  91.     {
  92.         $options = array(
  93.             'options' => array(
  94.                 'regexp' => 'первая бува заглавная, остальные маленькие',
  95.             ),
  96.         );
  97.         $filter = filter_var($s, FILTER_VALIDATE_REGEXP, $options);
  98.         if (!$filter) {
  99.             $s = '_' . $s;
  100.         }
  101.     }
  102. }
  103.  


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB