#1 2011.11.18 17:19

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Алгоритмы (вопрос/ответ)

Думаю стоящий сабж для того что бы его выделить!

В общем задает вопрос по интересующей "проблеме" и получаем ответ!


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#2 2011.11.18 18:13

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

В общем на зендовском фрейме (не знаю как на других я кроме зенда и CI ничего углубленно не юзал) есть такая фича:
Вот у нас есть контроллер и нам необходимо для определенной странички указать заголовок сайта (<title></title>)
Точных названий переменных не помню, но суть в том, что в контроллере можно указать заголовок таким образом:

Код:

1
2
3
4
5
6
7
8
9
10
11
<?php
class IndexController extends Zend_Controller_Action
{
    function indexAction()
    {
 
        $this -> view -> title 'Главная страница';
 
    }
}
?>

хочу себе организовать такую же шнягу! я вижу выход из ситуации только ob_start() и т.д
а потом просто заменять необходимые элементы!

У кого какие предложения?
З.ы только не посылайте меня лопатить зендовский фрейм, я лучше повешусь  big_smile


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#3 2011.11.18 18:18

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2405
Карма: 14
Профиль

Re: Алгоритмы (вопрос/ответ)

Nu3oN Я юзаю деструктор.
Вот пример:

Неактивен

#4 2011.11.18 18:20

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

TLENS написал:

Вот пример:

эммм... где??


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#5 2011.11.18 18:26

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2405
Карма: 14
Профиль

Re: Алгоритмы (вопрос/ответ)

В общем пример таков в начале иницыализируется класс Тема
Далее по пути работы скрипта изменяются публичные свойства.
И в деструкторе вывожу в браузер все.
В общем думал катнуть код простой но в падло.
Вот мой файл themes.class.php аналог буферизации.
Он еще только на тестировании поэтому и говна много, ну я так понимаю тебе пример надо.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
class Themes {
    public $title;
    public $nav;
    public $description;
    public $description_foot;
    public $content;
    public $desc;
    public $keyword;
    public $head;
    public function __construct () {
        global $_SET;
 
    }
    public function __destruct () {
        global $_SET$starttime;
        $this->parse();
        header("Content-type: text/html; charset=utf-8");
        $prev  = (($_SET->prev == 120) ? '<b>120x90</b>' '<a href="?preview=120">120x90</a>');
        $prev .= ' / ';
        $prev .= (($_SET->prev == 40) ? '<b>40x30</b>' '<a href="?preview=40">40x30</a>');
        $r '<?xml version="1.0" encoding="utf-8"?>'                                                                          "\n"
            .'<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">' "\n"
            .'<html>'                                                                                                          "\n"
            .' <head>'                                                                                                         "\n"
            .' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'                                          "\n"
            .' <meta name="' $this->keyword '" />'                                                                         "\n"
            .' <meta name="description" content="' .$this->desc'" />'                                                        "\n"
            .' <title>' $this->title '</title>'                                                                            "\n"
            .' <link rel="stylesheet" type="text/css" href="/themes/' $_SET->themes '/style.css" />'                       "\n"
            $this->head
            .' </head>'                                                                                                        "\n"
            .' <body>'                                                                                                         "\n"
                                                                                                                               "\n"
            .' <div id="title">'                                                                                               "\n"
            .' <a href="' $_SET->home '">'
                .'<img style="position: relative;top: 5px;" src="/themes/' $_SET->themes '/images/logo.png" alt="" /></a>' "\n"
            .' </div>'                                                                                                         "\n"
                                                                                                                               "\n"
            .' <div id="nav">' $this->nav '</div>'                                                                         "\n"
            .' <div id="description">' $this->description '</div>'                                                         "\n"
                                                                                                                               "\n"
            .' <div id="content">'                                                                                             "\n"
            .' Предосмотр: ' $prev '<br />'                                                                                "\n"
            $this->content                                                                                                   "\n"
            .' </div>'                                                                                                         "\n"
            .'  <div id="description-foot">'                                                                                   "\n"
            .'   ' .$this->description_foot                                                                                    "\n"
            .'  </div>'                                                                                                        "\n"
                                                                                                                               "\n"
            .'  <div id="foot">'                                                                                               "\n"
            .'   <div style="text-align:center">'
            //.'    <a href="http://fixwap.net/ru/?uid=11598"><img src="http://fixwap.net/ru/count.php?uid=11598" alt="fixwap"/></a>'    . "\n"
            .'    <a href="http://weplog.net/in/8375"><img src="http://weplog.net/8375/1.cnt" alt="wap сайты" title="wap сайты" /></a>'"\n"
            .'    <a href="http://waplog.net/c.shtml?352534"><img src="http://c.waplog.net/352534.cnt" alt="waplog" /></a>'            "\n"
            .'    <a href="http://mstop.ru/?uid=860"><img src="http://mstop.ru/count.php?860" alt="mstop.ru"/></a>'                  "\n"
            //.'    <a href="http://top.sexvirus.ru/click.php?2367"><img src="http://top.sexvirus.ru/image.php?2367,small" alt="top.sexvirus.ru" /></a>' . "\n" 
            .'    <br />'                                                                                                              "\n"
            .'    <a href="http://top4wap.ru/5883"><img src="http://top4wap.ru/cnt4.gif?5883" alt="TOP4WAP.ru"/></a><br />'            "\n"
            .'    <small>' round(microtime(1) - $starttime4) . ' Сек.</small> '                                                    "\n"
            .'   </div>'                                                                                                               "\n"
            .'  </div>'                                                                                                                "\n"
            .' </body>'                                                                                                                "\n"
            .'</html>';
            //var_dump($this);
            //highlight_string($r);
            echo $r;
    }
    private function parse () {
        global $_SET;
        if (!$this->title) {
            if ($_SET->page[1]) {
                $this->title $_SET->page[1] . ' - Лучшее порно';
            } else {
                $this->title 'Лучшее порно';
            }
            
        } else {
            $this->title $this->title ' - Лучшее порно';
        }
        
        if ($this->content == '') {
            $this->content '  <b>Страница не найдена</b>';
        }
        
        if (!$this->description) {
            $this->description '  Все самое лучшее здесь!';
        }
        
        if ($this->nav) {
            $this->nav $this->navig();
        }
        
        if (!$this->nav) {
            $this->navig();
        }
        if (!$this->keyword) {
            $this->keyword 'keywords" content="podsmotri.org, best, xxx, порно, Инцест, Домашка, руское, эротика, видео, 3gp, mp4, трах, секс, подсмотренное, лучшее';
        }
        if (!$this->desc) {
            $this->desc 'Лучшая подборка xxx, Бесплатное xxx, Домашнее xxx, Руское xxx, Скачать 3gp, Скачать mp4, Популярное xxx, Ржачное xxx, Скрытая камера';
        }
    }
    private function navig () {
        global $_SET;
        $arr_top[1] = array('<a href="/' $_SET->act '/new/">Новые</a>''<b>Новые</b>');
        $arr_top[2] = array('<a href="/' $_SET->act '/search/">Поиск</a>''<b>Поиск</b>');
        $arr_top[3] = array('<a href="/' $_SET->act '/top_week/">Топ нед.</a>''<b>Топ нед.</b>');
        $arr_top[4] = array('<a href="/' $_SET->act '/top_month/">Топ мес.</a>''<b>Топ мес.</b>');
        $arr_top[5] = array('<a href="/' $_SET->act '/top_all/">Топ все</a>''<b>Топ все</b>');
        $c count($arr_top);
        $this->nav '<small>';
        for ($i=1$i<=$c$i++) {
            $this->nav .= $arr_top[$i][(($_SET->page[0] == $i)?1:0)] . (($i<$c)? ' | ' '');
        }
        $this->nav .= '</small>';
        
        $if = ($_SET->page[0] >= && $_SET->page[0] <= 5);
        
        $arr_nav[1] = array('video''<a href="/video/' . (($if)? $_SET->page[2] : 'new') . '/">Видео</a>''<b>Видео</b>');
        $arr_nav[2] = array('photo''<a href="/photo/' . (($if)? $_SET->page[2] : 'new') . '/">Фото</a>''<b>Фото</b>');
        $i 0;
        $this->description '<small>';
        while ($arr_nav[++$i][0]) {
        //()
            $this->description .= $arr_nav[$i][(($_SET->act == $arr_nav[$i][0])? )] . (($arr_nav[($i 1)][0])? ' / ' '');
            
        }
        $this->description .= '</small>';
    }
}
 
 
 
?>

Неактивен

#6 2011.11.18 18:32

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

TLENS, идея впринципе хорошая, но у меня на шаблонах все!
а так черпану онсновную идею! это примерно то что я и искал))) спасибо большое smile


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#7 2011.11.18 19:44

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Nu3oN, я не совсем понял, как ты тогда рендеришь шаблоны, не имея всех данных?
Может я не совсем понимаю, но вариантов тут с ходу несколько имеется.

Неактивен

#8 2011.11.18 22:04

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Я сделал по принципу TLENS'a

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
        if (is_file(PATH_TEMPLATES self :: OUTPUT_THEME '/template.inc.php')) {
 
            require_once(PATH_TEMPLATES self :: OUTPUT_THEME '/template.inc.php');
            Logging :: setMark('Подключение файла настроек шаблона');
 
        } else {
            trigger_error('Ошибка при подключении файла настроек шаблона'E_USER_ERROR);
        }
 
        /* * Указываем залоговок страницы. */
        if (empty($this -> arrHeader['title'])) {
            $arrHeader['title'] = $titles['title'];
        } else {
            $arrHeader['title'] = $this -> arrHeader['title'];
        }
        /* * Указываем ключевые слова. */
        if (empty($this -> arrHeader['keywords'])) {
            $arrHeader['keywords'] = $titles['keywords'];
        } else {
            $arrHeader['keywords'] = $this -> arrHeader['keywords'];
        }
        /* * Указываем описание страницы. */
        if (empty($this -> arrHeader['description'])) {
            $arrHeader['description'] = $titles['description'];
        } else {
            $arrHeader['description'] = $this -> arrHeader['description'];
        }
        /* * Указываем где мы берем стиль. */
        $arrHeader['link_css'] = $titles['link_css'];
        /* * Указываем где мы берем иконку. */
        $arrHeader['link_ico'] = $titles['link_ico'];
        
        /* * Закрываем буферизацию. */
        $strOut ob_get_contents();
        ob_end_clean();
        
        header("Content-type: text/html; charset=utf-8");
 
        /* * Выводим основной шаблон. */
        $this -> view -> assign('arrHeader'$arrHeader);
        $this -> view -> assign('outContent'$strOut);
        $this -> view -> display('/''primary'); die;
 
    }

Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#9 2011.11.18 22:53

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Кстати юзав CI увидел "маркеры", и придумал велосипед, который оказался очень полезным!
полностью вижу весь процесс выполнения скрипта:

Начало ведения меток
Подключение класса "Logging"
Подключение файла "setting"
Подключение файла "common"
Старт сессии
Подключение класса "MVC_Router"
Определение категории с контроллером
Определение файла контроллера
Подключение класса "MVC_Controller"
Подключение файла контроллера
Запуск контроллера
Подключение класса "DB"
Подключение класса "DB_ClassBase"
Подключение класса "NativeTemplate"
Проверка существования категории с шаблонами
Подключение класса "GetHelpers"
Подключение хэлпера "testhelp()"
Подключение шаблона "index"
Подключение файла настроек шаблона
Передаем переменные в шаблон
Подключение шаблона "primary"
Конец ведения меток

Только в CI время пишут! там идет принцип такой:

Код:

1
2
3
4
5
6
7
<?php
function name_function($var)
{
    $this -> mark[$var] = microtime();
}
 
name_function('controller_execution_time_( '.$class.' / '.$method.' )_start');

а нахрена это надо я так и не нашел...


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#10 2011.11.19 11:23

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

возможно, для выявления ресурсоемких мест.

Неактивен

#11 2012.01.13 22:51

Sep
Участник
Откуда: Беларусь
Зарегистрирован: 2009.05.30
Сообщений: 37
Карма: 0
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Есть число 20, как сделать 5 разных чисел, что бы они в среднем арифметическом давали 20, и по возможности регулировать уровень числа.
Например:
Дано 20
Четвертое число больше всех.
Получаем числа 16, 10, 24, 30, 20.
Как это реализовать? Заранее спасибо

Отредактировано Sep (2012.01.13 22:55)

Неактивен

#12 2012.01.14 00:23

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$avg 20// среднее арифметическое
$count 5// всего необходимо чисел
$max 30// максимальное число
$maxNumber 4// какое число в массиве должно быть максимальным
 
 
$numbers = array();
$sum $avg $count;
for ($i 1$i <= $count; ++$i) {
    if ($i === $maxNumber) {
        $numbers[$i] = $max;
    } else if ($i === $count) {
        $numbers[$i] = $sum array_sum($numbers);
    } else {
        $numbers[$i] = mt_rand($max $count $count$max $count);
    }
}
print_r($numbers);
echo array_sum($numbers) / sizeof($numbers);

спасибо за задачку, мне очень понравилась)
Добавлено спустя    51 секунду:
P.S. не уверен на счет оптимальности кода, но сам алгоритм вроде работает.

Неактивен

#13 2012.01.14 01:07

Sep
Участник
Откуда: Беларусь
Зарегистрирован: 2009.05.30
Сообщений: 37
Карма: 0
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Gemorroj, спасибо большое smile

Неактивен

#14 2012.01.15 16:24

Sep
Участник
Откуда: Беларусь
Зарегистрирован: 2009.05.30
Сообщений: 37
Карма: 0
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Gemorroj, жаль что при увеличении числа $count алгоритм уже не правильно работает. Последнее число становится очень большим, разбежка от средне арифметического должна быть небольшой

Неактивен

#15 2012.01.15 18:17

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Sep, ну тут условия заданы жесткие. Т.е. работоспособность алгоритма зависит от заданных первоначальных условий.

Неактивен

#16 2012.04.28 02:17

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

У меня такая проблема. Нужно создать страничку списка сайтов локалхоста. Шаблон я подготовил, но в скрипте не могу разобраться, как вывести субдомены в общем блоке.
Конструкция разметки должна быть примерно следующей:
<div>
<a>Домен1</a>
<a>Домен2</a>

   <div>
    <a>Субдомен1.Домен2</a>
    <a>Субдомен2.Домен2</a>
   </div>

<a>Домен3</a>
</div>

А на данный момент я могу вывести лишь так:

<div>
<a>Домен1</a>
<a>Домен2</a>

   <div><a>Субдомен1.Домен2</a></div>
   <div><a>Субдомен2.Домен2</a></div>
   
<a>Домен3</a>
</div>

За основу взял этот скрипт:

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
// Original idea by: Dmitry Boykov (http://forum.dklab.ru/users/DmitryBoykov/)
$file = file('/usr/local/apache/conf/vhosts.conf');
foreach ($file as $line) {
  if (preg_match('/^[^#]* <VirtualHost \s+ [^:>]+ (?::(\d+))?/six', $line, $p)) {
    $port = @$p[1];
  }
  if (preg_match('/^[^#]* ServerName \s+ "?([^"]*)"?/six', $line, $p)){
    if ($port == 443) continue;
    $dom = preg_replace('/^www\./si', '', $p[1]);
    $dom .= $port && $port != 80? ":$port" : "";
    $domains[$dom] = join(".", array_reverse(preg_split('/\./', $dom)));
  }
}
asort($domains);
 
$prev = false;
echo '<ul>';
foreach ($domains as $dom=>$parts) {
  if (!$prev || !preg_match('/'.preg_quote($prev, '/').'$/si', $dom)) {
    echo "<li><a href=\"http://{$dom}\" target=\"_blank\"><b>{$dom}</b></a></li>";
    $prev = $dom;
  } else {
    print "&nbsp;&nbsp;-&nbsp;&nbsp;<a href=\"http://{$dom}\" target=\"_blank\">{$dom}</a><br />";
  }
}
echo '</ul>';
?>

sad
Было бы вообще здорово, если бы домены и субдомены парсились не из апача, чтоб при запуске на Nginx, список сайтов тоже смог отобразится.

Неактивен

#17 2012.04.28 10:22

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

эм.. не совсем понимаю. проблема всего лишь в дивах?
и еще, вероятно, лучше будет использовать не парсер vhosts.conf, а парсить вывод apachectl -S

Неактивен

#18 2012.04.28 14:24

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Да, вопрос косметического характера - вывод субдоменов в каком-либо классе (дивы для примера конструкции, мне нужен <ul>).
И чтоб скрипт мог работать на том же Денвере. smile

Неактивен

#19 2012.04.28 15:01

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

ну так собери сначала все в массив, а потом с массивом делай что хочешь.

Неактивен

#20 2012.04.28 16:42

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Без понятия как это сделать.

Неактивен

#21 2012.04.28 17:15

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

что именно?

Неактивен

#22 2012.04.28 17:21

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Kак составить массив, чтоб при домене без поддоменов выводило:
<a>Домен</a>,
а при выявлении субдоменов:
<a>Домен</a>
<ul>
<a>Субдомен-1</a>
<a>Субдомен-2</a>
</ul>.

То есть, я не смогу составить такой массив, так как не понимаю основ php.

Неактивен

#23 2012.04.28 21:53

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

давай свой скрипт, как ты сейчас собираешь.

Неактивен

#24 2012.04.28 22:55

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Вот скрипт, только я его уже не разбираю. Искал в инете похожие проблемные ситуации или готовое решение 2 дня и ни чего не добился.sad


Вложения

Неактивен

#25 2012.04.29 19:13

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

скинь еще vhosts.conf для примера, а то у меня как ни странно под рукой не нашлось тестовой конфигурации

Неактивен

#26 2012.04.29 20:27

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Вот такой список составил:


Вложения

Неактивен

#27 2012.04.30 11:25

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

блин, вчера дома немного подправил скрипт, потом настроение пропало) сегодня вечером доделаю

Неактивен

#28 2012.04.30 13:57

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Gemorroj, хорошо.

Неактивен

#29 2012.04.30 22:44

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

надеюсь разберешься


Вложения

Неактивен

#30 2012.05.01 00:11

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

sad Я не смог разобраться.
Скрипт выдает:

Array
(
    [site1.ru] => Array
        (
            [0] => sub1.site1.ru
            [1] => sub2.site1.ru
            [2] => sub3.site1.ru
        )

    [site2.ru] => Array
        (
        )

    [site3.ru] => Array
        (
        )

    [site4.ru] => Array
        (
        )

)

Отредактировано LEXIN (2012.05.01 00:28)

Неактивен

#31 2012.05.01 10:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

ну так там print_r и exit стоит. я думал с таким массивом ты уже разберешься как дальше работать.

Неактивен

#32 2012.05.01 13:51

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Не, это я не осилил. Пытался в код echo и print вставлять, но получаю только ошибки на выводе.

Неактивен

#33 2012.05.17 01:24

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 859
Карма: 11
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

в общем вопрос в следующем:
Пишу скрипт групп. Зациклился на решение задачи со вступлением в закрытую группу!

Вот и думаю при отсылке запроса на добавление в группу отправлять лс администратору мол такой-то, такой-то хочет вступить в группу.
Или же выискать в модераторах того кто в онлайне и отправить ему в лс запрос? если же второй вариант, то как быть если никого нет в онлайне?
И еще есть третий вариант! создать страничку в группе, мол в группу хотят добавится такие то такие. Но тут тоже есть нюанс! Модераторы могут долгое время не заходить в группу...


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#34 2012.05.17 10:20

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

можно совместить эти варианты. а уведомлять админа или модераторов - наверное можно сделать как настройку в группе.

Неактивен

#35 2014.09.04 14:05

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2291
Карма: 19
Профиль

Re: Алгоритмы (вопрос/ответ)

Как правильно разделить несколько переменных через запятую, если неизвестно содержит ли предыдущая или следующая переменная запись?
Примеры:
Строка переменных: {1}{2}{3}{4}{5}{6}{7}
Значение есть только у {1} и {5}, или {3} и {6}, или {2}, {3} и {7} и т.д.
Можно проверить переменную на содержание записи { IF 1 = "" "yes" "no" }
Можно использовать дополнительную переменную и выводить её значение
Проставив запятые обычным образом не катит: {1},{2},{3},{4},{5},{6},{7} т.к. с заданными условия получим: , , , +, +, , например

Неактивен

#36 2014.09.04 17:30

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

для вывода implode используешь?
можно обработать массив через array_filter, например.

Неактивен

#37 2014.09.04 17:32

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2291
Карма: 19
Профиль

Re: Алгоритмы (вопрос/ответ)

Нет, я в MS Word пытаюсь слияние организовать))
Там есть:
{SET переменная "значение"}
{= 1 + 1}
{IF "значение" = переменная "1" "2"}
{MERGEFIELD Переменная \b "before" \f "after"}
Добавлено спустя   3 минуты  33 секунды:
У меня есть файл MS Exel. В нём записи запросов.
На каждый запрос нужен ответ с адресом.
Вот адрес через "," я могу огранизовать простым условием, если есть просто в конце добавить "," но последний элемент будет содержать ","
Вот в чем вся проблема

Неактивен

#38 2014.09.05 18:05

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2291
Карма: 19
Профиль

Re: Алгоритмы (вопрос/ответ)

Получилось.

Неактивен

#39 2014.09.05 18:24

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6586
Карма: 108
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

зачем код стер?)

Неактивен

#40 2014.09.05 23:15

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2291
Карма: 19
Профиль

Re: Алгоритмы (вопрос/ответ)

Да я уже по-другому сделал))
Лучше всего у меня получается сливать таблицу MS Exel в мой шаблон указывая тип документа "Письмо"
Этот код мне помогает собрать разбитый адрес в таблице MS Exel с разделителем "," примерно так: |город|улица|дом|квартира| => г. Город, ул. Улица, д. #, кв. #
Слияние помогает избегать рутинной работы, таких строк у меня бывает много, а значит столько же писем должно быть.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php // MS Word
 
// Добавить поле можно комбинацией: [Ctrl] + [F9]
// Поле это { }
 
/*
    Я решил через переменные сделать.
    Потом удобней будет искать и редактировать.
    Ибо в MS Word каждый раз надо добавлять поля комбинацией.
    Тут однотипный код, написали 1 строку с каждого блока,
    после копируйте все поле и можно редактировать.
    Можно и попроще, в 2 последних блока сделать.
    Можно попробовать оптимизировать, не считая кол-во записей,
    сразу как-то в блоке 4, но мне и так хватает :)
*/
 
// Объявление переменных
{SET Счетчик 0}{SET Строка ""}
{SET Элемент1 ""}
{SET Элемент2 ""}
{SET Элемент3 ""}
{SET Элемент4 ""}
 
// Подготовка Полей слияния. Приводим в конечный вид.
{IF Элемент1 <> "" {SET Элемент1 {MERGEFIELD ПолеСлияния1 \"добавим что-нибудь в конец строки"}}}
{IF Элемент2 <> "" {SET Элемент2 {MERGEFIELD ПолеСлияния2 \"добавим что-нибудь в начало строки"}}}
{IF Элемент3 <> "" {SET Элемент3 {MERGEFIELD ПолеСлияния3}}}
{IF Элемент4 <> "" {SET Элемент4 {MERGEFIELD ПолеСлияния4}}}
 
// Другой вариант:
{IF Элемент5 <> "" {SET Элемент5 {MERGEFIELD ПолеСлияния5}} {SET Элемент5 ""}}
 
// Подсчет количества записей (т.е. не пустых записей)
{IF Элемент1 <> "" {SET Счетчик {=Счетчик+1}}}
{IF Элемент2 <> "" {SET Счетчик {=Счетчик+1}}}
{IF Элемент3 <> "" {SET Счетчик {=Счетчик+1}}}
{IF Элемент4 <> "" {SET Счетчик {=Счетчик+1}}}
 
/*
    Если элемент присутствует, уменьшаем счетчик
    для операции определения нужна ли запятая или нет.
*/
// Формирование переменной Строка
{IF Элемент1 <> "" {SET Счетчик {=Счетчик-1}}}
{IF Элемент1 <> "" {SET Строка {IF <= Счетчик "{Строка}{Элемент1}, " "{Строка}{Элемент1}"}}}
{IF Элемент2 <> "" {SET Счетчик {=Счетчик-1}}}
{IF Элемент2 <> "" {SET Строка {IF <= Счетчик "{Строка}{Элемент2}, " "{Строка}{Элемент2}"}}}
{IF Элемент3 <> "" {SET Счетчик {=Счетчик-1}}}
{IF Элемент3 <> "" {SET Строка {IF <= Счетчик "{Строка}{Элемент3}, " "{Строка}{Элемент3}"}}}
{IF Элемент4 <> "" {SET Счетчик {=Счетчик-1}}}
{IF Элемент4 <> "" {SET Строка {IF <= Счетчик "{Строка}{Элемент4}, " "{Строка}{Элемент4}"}}}
 
// ------- Совсем другой "безПеременный" вариант (!!!НЕ ТЕСТИРОВАЛ!!!):
{IF ПолеСлияния5 <> "" {SET Счетчик {=Счетчик+1}}}
// ...
 
{IF ПолеСлияния5 <> "" {SET Счетчик {=Счетчик-1}}}
{IF ПолеСлияния5 <> "" {SET Строка {IF <= Счетчик "{Строка}{ПолеСлияния5 \b "добавим в начало" \f "добавим в конец"}, " "{Строка}{ПолеСлияния5 \b "добавим в начало" \f "добавим в конец"}"}}}
 
{Строка// Результат

Неактивен

#41 2014.09.07 02:40

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2291
Карма: 19
Профиль

Re: Алгоритмы (вопрос/ответ)

Епт, если результат сразу распечатать, то фигня получается. А вот когда отдельно в документ сохраняешь - норм, и его распечатка тоже норм проходит.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.1
0.042 s