PHP.SU

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

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

> Найдено сообщений: 11
artlayers Отправлено: 13 Мая, 2013 - 13:46:41 • Тема: Оптимизация системы исключения на основе фильтра • Форум: Программирование на PHP

Ответов: 2
Просмотров: 359
LIME пишет:
осуществлять процесс при добавлении текста а не отдаче

Конечно, так логичнее, но не подходит такой вариант.
artlayers Отправлено: 13 Мая, 2013 - 13:13:41 • Тема: Оптимизация системы исключения на основе фильтра • Форум: Программирование на PHP

Ответов: 2
Просмотров: 359
Добрый день. Есть такая задача. Есть сайт, на каждой его странице есть много названий (назовем текстовая метка), скажем, 100 таких меток на каждой странице. Запросов в минуту к сайту не менее 150. Задача состоит в том, что нужно выводить только те текстовые метки, которые не попадают под определенный фильтр слов, причем по маске %LIKE%. Список стоп-слов состоит примерно из 150 штук. Как понимаете, нужно каждую метку проверить 150 раз соответственно и как только находится совпадение цикл проверки текущей метки прервать и перейти к следующей. Если на странице 100 меток, то проверок будет 100*150=15.000 при 150 запросах в минуту, таких проверок будет ~2.250.000. Сравнение на данный момент делаю через strpos, работает, конечно, не быстро, но и не сказать что медленно. Список стоп-слов содерждится сейчас в подключаемом php файле в виде одномерного массива. Есть мысль перенести его в БД, где каждая строка будет содежать одно стоп-слово. Но вопрос - ускорит ли это процесс? У кого есть мысли как оптимизировать данный процесс? Спасибо заранее.
artlayers Отправлено: 29 Мая, 2011 - 11:06:56 • Тема: Создание json структуры дерева • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 7306
Спасибо! Почти так как нужно, но
1) Не могу получить json строку из этого, json_encode выводит {}
2) Если потомков нет, то children желательно не выводить.
Код немножко адаптировал под свою структуру (имена поменял в основном)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class Node {
  3.         public $id, $content, $children = array();
  4.  
  5.         public function __construct($id, $parent_id, $content) {
  6.                 $this->id = $id;
  7.                 //$this->parent_id = $parent_id;
  8.                 $this->content = $content;
  9.         }
  10. }
  11.  
  12.  
  13. class Tree {
  14.         private $refs = array(), $tree = array();
  15.  
  16.         function __construct() {
  17.                 $node = new Node(0, NULL, "Root");
  18.                 $this->tree[] = $node;
  19.                 $this->refs[0] = &$node;
  20.         }
  21.  
  22.         function appendChild($id, $parent_id, $content) {
  23.                 if (isset($this->refs[$parent_id])) {
  24.                         if (isset($this->refs[$id])) {
  25.                                 echo "Элемент с id = $id уже имеется.<br />";
  26.                         }
  27.                         else {
  28.                                 $ref = $this->refs[$parent_id];
  29.                                 $node = new Node($id, $parent_id, $content);
  30.                                 $ref->children[] = $node;
  31.                                 $this->refs[$id] = &$node;
  32.                         }
  33.                 }
  34.                 else {
  35.                         echo "Элемента с id = $parent_id нет.<br />";
  36.                 }
  37.         }
  38.  
  39.         function get() {
  40.                 return $this->tree;
  41.         }      
  42. }
  43.  
  44. $t = new Tree();
  45. $t->appendChild(1, 0, "Data1");
  46. $t->appendChild(2, 1, "Data2");
  47. $t->appendChild(3, 2, "Data3");
  48. echo "<pre>";
  49. var_dump($t->get());
  50. //print_r(json_encode($t));
  51. ?>


Как теперь перегнать в json?
artlayers Отправлено: 28 Мая, 2011 - 18:35:50 • Тема: Создание json структуры дерева • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 7306
DlTA пишет:
))))))
json_encode(array(...)) и на выходи получаем нужную строку
(Добавление)
чтоб не возникало не нужных мыслей:
входной параметр может быть многомерным массивом!


Да, хорошо, функция знакома, но я не могу сформировать массив необходимой структуры, чтобы его обработать.
Явно придется дополнительно указывать какой узел кому родитель, для корня поставить null.
(Добавление)
Дерево всегда может быть разным, иметь разное количество узлов, разное количество потомков у каждого родителя. Единственное что известно о дереве: [номер узла] и [номер узла который является родителем], если это корень, то номер родителя просто null. Узлов может быть хоть 5, хоть 1000.
artlayers Отправлено: 28 Мая, 2011 - 17:37:03 • Тема: Создание json структуры дерева • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 7306
Столкнулся с непосильной для меня задачей. Есть дерево с бесконечным числом уровней, ветвлений и листов, задавать можно например массивом.
Выглядит оно вот так

а ниже структура, которая его описывает
CODE (text):
скопировать код в буфер обмена
  1. [{
  2. "id":1,
  3. "content":"Root",
  4. "children": [
  5.     {
  6.         "id":2,
  7.         "content":"List2",
  8.         "children": [
  9.             {
  10.                 "id":11,
  11.                 "content":"List3"
  12.             },
  13.             {
  14.                 "id":12,
  15.                 "content":"List4",
  16.                 "children": [
  17.                     {
  18.                         "id":15,
  19.                         "content":"List5",
  20.                     },
  21.                     {
  22.                         "id":16,
  23.                         "content":"List6"
  24.                     }
  25.                 ]
  26.             },
  27.             {
  28.                 "id":12,
  29.                 "content":"List7"
  30.             }
  31.         ]
  32.     },
  33.     {
  34.         "id":3,
  35.         "content":"List9"
  36.     }
  37. ]
  38. }]


Как такую структуру можно сформировать средствами php?
Я пытался несколькими способами, один с помощью http://pear.php[dot]net/pepr/pepr-pr[dot][dot][dot]-show.php?id=198, накидал такой код
PHP:
скопировать код в буфер обмена
  1. class tree {
  2.   public $id;
  3.   public $content;
  4.   public $children;
  5.  
  6.   function tree($id,$content) {
  7.     $this->id = $id;
  8.     $this->content = $content;
  9.     $this->children = array();
  10.   }
  11. }
  12.  
  13. $tree = new tree("5", "List5");
  14. $tree->children[0] = "1";
  15. $tree->children[1] = "2";
  16. $tree->children[2] = "3";
  17. print_r($tree);
  18. require_once("JSON.php");
  19. $json = new Services_JSON();
  20. $sJSONText = $json->encode($tree);
  21. echo($sJSONText);

Все что у меня вышло получить структуру вида
CODE (text):
скопировать код в буфер обмена
  1. {"id":"5","content":"List5","children":["1&qu ot;,"2","3"]}

Но это не то, не знаю как свойства и потомков прописать. К тому же, листьев может быть в глубину сколько угодно, это все будет браться с БД, но пока для отладки можно задать массивом.
artlayers Отправлено: 11 Июня, 2010 - 19:22:36 • Тема: Скрипт для удаления старых файлов • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 99
такая команда берет и удаляет папку полностью которая стоит в конце, то есть пишу путь /public_html/del/ удаляется папка del/ Мне унжно удалять только файлы внутри папки и в подпапках
artlayers Отправлено: 11 Июня, 2010 - 12:22:07 • Тема: Скрипт для удаления старых файлов • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 99
я как у ctime задать не один день, а например 10 часов?
artlayers Отправлено: 06 Июня, 2010 - 18:46:03 • Тема: Скрипт для удаления старых файлов • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 99
Спасибо, хорошее решение, только тут есть проблема, папок очень много в которых надо пошарить, автоматически по ним пройтись нельзя? (средствами пхп только циклы вложенные представляю)
artlayers Отправлено: 04 Июня, 2010 - 19:39:36 • Тема: Скрипт для удаления старых файлов • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 99
Здравствуйте.
У меня такая задача:
Есть много папок структуры такой

папка в ней находится 100 папок, в каждой папке находится ещё по 100 папок и в этих 100 папках еще 100 папок. В последних (4 уровня получается уже) папках находится много файлов (ну примерно по 1 тысячи).
Что нужно?
Нужен скрипт, который будет залазить в каждую папку и удалять файлы с сервера которым, например, больше 5 дней. При этом очень желательно чтобы скрипт очень сильно сервер не напрягал.
Спасибо за любую помощь.
artlayers Отправлено: 14 Марта, 2010 - 06:45:35 • Тема: Заменить в строке символы и убрать пробелы • Форум: Программирование на PHP

Ответов: 4
Просмотров: 4422
Странно, но с пробелами проблемка. Так не совсем корректно работает.
PHP:
скопировать код в буфер обмена
  1. $queryString = str_replace(array('_', '-', '—', '  '), '', trim($str));

А так нормально
PHP:
скопировать код в буфер обмена
  1.  
  2. $queryString = str_replace(array('_', '-', '—'), ' ', trim($queryString));
  3. $queryString=preg_replace('/\s+/', ' ', $queryString);

Есть причина? Можно через регулярные выражения все сделать?
artlayers Отправлено: 13 Марта, 2010 - 19:18:07 • Тема: Заменить в строке символы и убрать пробелы • Форум: Программирование на PHP

Ответов: 4
Просмотров: 4422
Здравствуйте.
Как можно разом заменить в строке символ длинного тире "—"? символ короткого тире "-", нижнего подчеркивания "_" и убрать все лишние (более одного) пробелы внутри строки и отсечь их по краям? Причем желательно чтобы это работало как можно быстрее. Сейчас сделал вот такую неэффективную конструкцию.
PHP:
скопировать код в буфер обмена
  1. $query="   Вна           чале_был—о      С   ло        -  в  о      ";
  2. print ("Исходник ".$query."<br>");
  3. $queryString=trim($query);
  4. $queryString=str_replace ('-','',$queryString);
  5. $queryString=preg_replace('/\s+/', ' ', $queryString);
  6. print ($queryString."<br>");


на входе последовательность (строка) в которой могут быть совершенно любые символы и много много пробелов.
На выходе нужно получить туже самую последовательность символов, но без знаков "—","-","_" и кучи лишних пробелов, любые лишние пробелы (вначале и в конце хотя бы 1, в середине 2 и более) должны заменяться лишь на 1 пробел. Символы "—","-","_" должны заменяться на 1 пробел.
Пример. Была строка на входе
" Вначале_было -Слово — а после... "
А должно получиться
"Вначале было Слово а после..."

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB