<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mr.Daark: Записки сурка</title>
	<atom:link href="https://mrdaark.com/feed" rel="self" type="application/rss+xml" />
	<link>https://mrdaark.com</link>
	<description>Про меня, про интернет, про деньги, про жизнь, про всё :)</description>
	<lastBuildDate>Fri, 06 Mar 2015 18:42:19 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
		<item>
		<title>Упустил квадрик :(</title>
		<link>https://mrdaark.com/quadcopter-lost.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Fri, 06 Mar 2015 18:40:52 +0000</pubDate>
				<category><![CDATA[Мои новости]]></category>
		<category><![CDATA[jjrc h8c]]></category>
		<category><![CDATA[quadcopter]]></category>
		<category><![CDATA[потеря]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=263</guid>

					<description><![CDATA[Первый раз вышел на улицу с ребёнком запустить квадрик, не справился с управлением и он улетел в сторону реки. Искали почти час пока не стемнело, не нашли 🙁 Расстроен жутко. Получил его только а начале недели, и тут такая досада. Осталась только камера, аппаратура и запасной аккум. Сижу в грусти и печали 🙁 Может ещё [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Первый раз вышел на улицу с ребёнком запустить квадрик, не справился с управлением и он улетел в сторону реки.</p>
<p>Искали почти час пока не стемнело, не нашли <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Расстроен жутко. Получил его только а начале недели, и тут такая досада.</p>
<p><a href="https://mrdaark.com/wp-content/uploads/2015/03/1414802041284-P-2123624.jpg"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-264" src="https://mrdaark.com/wp-content/uploads/2015/03/1414802041284-P-2123624.jpg" alt="jjrc h8c" width="400" height="400" srcset="https://mrdaark.com/wp-content/uploads/2015/03/1414802041284-P-2123624.jpg 400w, https://mrdaark.com/wp-content/uploads/2015/03/1414802041284-P-2123624-150x150.jpg 150w, https://mrdaark.com/wp-content/uploads/2015/03/1414802041284-P-2123624-300x300.jpg 300w" sizes="(max-width: 400px) 100vw, 400px" /></a>Осталась только камера, аппаратура и запасной аккум.</p>
<p>Сижу в грусти и печали <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Может ещё один заказать?</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Backup сервера на Яндекс.Диск</title>
		<link>https://mrdaark.com/backup-server-on-yandex-disk.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Mon, 02 Feb 2015 13:59:58 +0000</pubDate>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[yandex.disk]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=251</guid>

					<description><![CDATA[Как известно, админы делятся на тех кто не делает бэкапы, и тех кто уже делает. Так то у меня есть бекапы средствами хостинга, но для собственного спокойствия решил таки сделать небольшой скриптик для бекапа всего важного на яндекс.диск, благо появился консольный клиент яндекс.диска под linux. Особенности: 1. каждая БД сохраняется отдельным файлом, потом все вместе [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Как известно, админы делятся на тех кто не делает бэкапы, и тех кто уже делает.</p>
<p><img decoding="async" class=" wp-image-253 alignleft" src="https://mrdaark.com/wp-content/uploads/2015/02/backup-1024x683.jpg" alt="Кнопка backup" width="1000" srcset="https://mrdaark.com/wp-content/uploads/2015/02/backup-1024x683.jpg 1024w, https://mrdaark.com/wp-content/uploads/2015/02/backup-300x200.jpg 300w, https://mrdaark.com/wp-content/uploads/2015/02/backup.jpg 1732w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p>Так то у меня есть бекапы средствами <a title="хостинг от DigitalOcean рулит" href="https://www.digitalocean.com/?refcode=422ad894247d" target="_blank">хостинга</a>, но для собственного спокойствия решил таки сделать небольшой скриптик для бекапа всего важного на <a title="Получи лишний гигабайт на яндекс.диске" href="https://disk.yandex.ru/invite/?hash=GD0VH723" target="_blank">яндекс.диск</a>, благо появился <a href="https://help.yandex.ru/disk/cli-clients.xml" target="_blank">консольный клиент яндекс.диска под linux</a>.</p>
<p>Особенности:<br />
1. каждая БД сохраняется отдельным файлом, потом все вместе архивируются<br />
2. архивируется каталог /etc<br />
3. архивируется каталог /root<br />
4. архивируется каталог /home<br />
5. итоговый архив шифруется с помощью gpg<br />
6. если архивов в папке больше 7шт (настраивается переменной MAX_FILES), то старые удаляются.</p>
<p>Вся установка/настройка скрипта сводится к:<br />
1. установка и настройка клиента яндекс.диска по ссылке выше<br />
2. копирование скрипта куда-нибудь на сервер<br />
3. настроить логин/пароль к mysql базе</p>
<pre style="background: #000; color: #f8f8f8;">MYSQL_USER=<span style="color: #65b042;">"user"</span>
MYSQL_PASSWORD=<span style="color: #65b042;">"password"</span>
</pre>
<p>4. ввести пароль для шифрования файле бекапа (через gpg)</p>
<pre style="background: #000; color: #f8f8f8;">GPG_PASSOWRD=<span style="color: #65b042;">"gpg_password"</span>
</pre>
<p>5. прописать скрипт в cron на запуск например в 4 утра.</p>
<pre style="background: #000; color: #f8f8f8;"><span style="color: #3387cc;">0</span>       <span style="color: #3387cc;">4</span>       <span style="color: #e28964;">*</span>       <span style="color: #e28964;">*</span>       <span style="color: #e28964;">*</span>       /home/cron/backup.sh  <span style="color: #e28964;">&gt;</span>/dev/<span style="color: #3387cc;">null</span> <span style="color: #3387cc;">2</span><span style="color: #e28964;">&gt;</span><span style="color: #e28964;">&amp;</span><span style="color: #3387cc;">1</span>
</pre>
<p>сам скрипт:</p>
<pre style="background: #000; color: #f8f8f8;"><span style="color: #aeaeae; font-style: italic;">#!/bin/bash</span>
MYSQL_USER=<span style="color: #65b042;">"user"</span>
MYSQL_PASSWORD=<span style="color: #65b042;">"password"</span>
GPG_PASSOWRD=<span style="color: #65b042;">"gpg_password"</span>
BACKUP_DIRECTORY=<span style="color: #65b042;">"/home/backups"</span>
MAX_FILES=7

databases=<span style="color: #65b042;">`mysql --user=<span style="color: #8a9a95;">$MYSQL_USER</span> --password=<span style="color: #8a9a95;">$MYSQL_PASSWORD</span> -e <span style="color: #65b042;">"SHOW DATABASES;"</span> <span style="color: #e28964;">|</span> tr -d <span style="color: #65b042;">"| "</span> <span style="color: #e28964;">|</span> grep -v Database`</span>

curr_date=<span style="color: #65b042;">`date +%Y<span style="color: #ddf2a4;">\.</span>%m<span style="color: #ddf2a4;">\.</span>%d`</span>

<span style="color: #e28964;">for</span> <span style="color: #3e87e3;">db</span> <span style="color: #e28964;">in</span> <span style="color: #3e87e3;">$databases</span><span style="color: #e28964;">;</span> <span style="color: #e28964;">do</span>
    <span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Dumping database: <span style="color: #8a9a95;">$db</span>"</span>
    OPT=<span style="color: #65b042;">""</span>
    <span style="color: #e28964;">if</span> [[ <span style="color: #65b042;">"<span style="color: #8a9a95;">$db</span>"</span> <span style="color: #e28964;">==</span> <span style="color: #65b042;">"mysql"</span> ]] <span style="color: #e28964;">;</span> <span style="color: #e28964;">then</span>
        OPT=<span style="color: #65b042;">" --events"</span>
    <span style="color: #e28964;">fi</span>
    mysqldump --user=<span style="color: #3e87e3;">$MYSQL_USER</span> --password=<span style="color: #3e87e3;">$MYSQL_PASSWORD</span> --databases <span style="color: #3e87e3;">$db</span> --add-drop-table --add-locks --create-options --single-transaction -Q -c -e <span style="color: #3e87e3;">$OPT</span> <span style="color: #e28964;">&gt;</span> /tmp/<span style="color: #3e87e3;">$curr_date</span>.<span style="color: #3e87e3;">$db</span>.sql
<span style="color: #e28964;">done</span>

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Create DB archive"</span>
<span style="color: #dad085;">cd</span> /tmp
tar czf /home/db_<span style="color: #3e87e3;">$curr_date</span>.tgz <span style="color: #e28964;">*</span>.sql

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Remove tmp sql files"</span> 
rm /tmp/<span style="color: #e28964;">*</span>.sql 

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Backup etc files"</span>
<span style="color: #dad085;">cd</span> /etc/
tar czf /home/etc_<span style="color: #3e87e3;">$curr_date</span>.tgz <span style="color: #e28964;">*</span>

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Backup root files"</span>
<span style="color: #dad085;">cd</span> /root/
tar czf /home/root_<span style="color: #3e87e3;">$curr_date</span>.tgz <span style="color: #e28964;">*</span>

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Backup all files"</span>
<span style="color: #dad085;">cd</span> /home/
tar czf <span style="color: #3e87e3;">$BACKUP_DIRECTORY</span>/backup_<span style="color: #3e87e3;">$curr_date</span>.tgz <span style="color: #e28964;">*</span> --exclude=<span style="color: #65b042;">"backups"</span> --exclude=<span style="color: #65b042;">"*/wp-content/cache/*"</span>

/usr/bin/gpg -c --force-mdc --batch --yes --passphrase=<span style="color: #3e87e3;">$GPG_PASSOWRD</span> <span style="color: #3e87e3;">$BACKUP_DIRECTORY</span>/backup_<span style="color: #3e87e3;">$curr_date</span>.tgz

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Remove tmp files"</span>
rm /home/db_<span style="color: #3e87e3;">$curr_date</span>.tgz  /home/etc_<span style="color: #3e87e3;">$curr_date</span>.tgz /home/root_<span style="color: #3e87e3;">$curr_date</span>.tgz <span style="color: #3e87e3;">$BACKUP_DIRECTORY</span>/backup_<span style="color: #3e87e3;">$curr_date</span>.tgz

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Remove old backup files"</span>

bf=<span style="color: #65b042;">`ls -1 <span style="color: #8a9a95;">$BACKUP_DIRECTORY</span>/backup<span style="color: #e28964;">*</span>.tgz.gpg <span style="color: #e28964;">|</span> sort -d`</span>
<span style="color: #dad085;">fc</span>=<span style="color: #65b042;">`ls -1 <span style="color: #8a9a95;">$BACKUP_DIRECTORY</span>/backup<span style="color: #e28964;">*</span>.tgz.gpg <span style="color: #e28964;">|</span> wc -l`</span>

<span style="color: #e28964;">if</span> [ <span style="color: #65b042;">"<span style="color: #8a9a95;">$fc</span>"</span> -gt <span style="color: #65b042;">"<span style="color: #8a9a95;">$MAX_FILES</span>"</span> ] <span style="color: #e28964;">;</span> <span style="color: #e28964;">then</span>
    <span style="color: #e28964;">for</span> <span style="color: #3e87e3;">file</span> <span style="color: #e28964;">in</span> <span style="color: #3e87e3;">$bf</span>
    <span style="color: #e28964;">do</span>
        <span style="color: #e28964;">if</span> [ <span style="color: #65b042;">"<span style="color: #8a9a95;">$fc</span>"</span> -gt <span style="color: #65b042;">"<span style="color: #8a9a95;">$MAX_FILES</span>"</span> ] <span style="color: #e28964;">;</span><span style="color: #e28964;">then</span>
            <span style="color: #dad085;">fc</span>=<span style="color: #65b042;">$((<span style="color: #8a9a95;">$fc</span> <span style="color: #e28964;">-</span> <span style="color: #ddf2a4;">1</span>))</span>
            rm -f <span style="color: #3e87e3;">$file</span>
        <span style="color: #e28964;">fi</span>
    <span style="color: #e28964;">done</span>
<span style="color: #e28964;">fi</span>

<span style="color: #dad085;">echo</span> <span style="color: #65b042;">`date +%H:%M:%S`</span> <span style="color: #65b042;">": Yandex.Disk sync"</span>
/usr/bin/yandex-disk sync
</pre>
<p>В планах:<br />
1. сделать сохранение месячных и недельных бекапов<br />
2. подумать над инкрементными ежедневными бекапами (хотя тут наверное проще какую-нибудь Bacula поставить) %)</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Рукожопства пост: починил планшет</title>
		<link>https://mrdaark.com/pochinil-planshet-n101.html</link>
					<comments>https://mrdaark.com/pochinil-planshet-n101.html#comments</comments>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Sun, 18 Jan 2015 19:32:13 +0000</pubDate>
				<category><![CDATA[Мои новости]]></category>
		<category><![CDATA[n101]]></category>
		<category><![CDATA[yuandao]]></category>
		<category><![CDATA[зарядка]]></category>
		<category><![CDATA[синяя изолента]]></category>
		<category><![CDATA[экран]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=236</guid>

					<description><![CDATA[Перестал тут давеча китайский планшетик (Yuandao/Window N101) мой подавать признаки жизни. Диагноз: не включается. В принципе я давно знал что у него проблема с зарядкой, в том плане, что родная дохнет, разъем разбалтывается и все, не заряжается. И так пробовал, и так, ну никак. Разобрал его, поджал контакты, однофигственно никак. Решил переделать заменить зарядку, но [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Перестал тут давеча китайский планшетик (Yuandao/Window N101) мой подавать признаки жизни. Диагноз: не включается.<br />
В принципе я давно знал что у него проблема с зарядкой, в том плане, что родная дохнет, разъем разбалтывается и все, не заряжается.</p>
<p>И так пробовал, и так, ну никак.</p>
<p>Разобрал его, поджал контакты, однофигственно никак. Решил переделать заменить зарядку, но покупать что-то во-первых лень, а во-вторых, не уверен что поможет, поэтому нашел конец кабеля с USB, отрезал разъем от родной зарядки, ну и смотал все это дело синей изолентой&#8230;</p>
<p>Думается все должно засвистеть и заплясать, ан нет&#8230; при подключении зарядки &#8212; напряжение на контактах разъема есть, на контактах аккумулятора со временем напряжение тоже растет (изначально когда открыл было порядка 3.0V, что совсем не айс). Доползло где-то до 3.9, но планшет вроде как и не подает признаков жизни. Ну все думаю, совсем беда&#8230;</p>
<p>Но, прислушался, слышу динамики чутка шипят. Зажал кнопку выключения для принудительного отключения &#8212; затихли&#8230; Включил &#8212; опять зашипели. Подождал, отправил сообщение &#8212; планшет блямкнул уведомлением.</p>
<p>Ага! Работает, только экран не але.</p>
<p>Где-то читал, что бывает глючит и типа отпаять ему аккумулятор (обесточить совсем), дать полежать и обратно. Проманипулировал &#8212; ничего.</p>
<p>И тут &#8212; эврика: при поднятии аккумулятора &#8212; зажегся экран. Поэкспериментировал &#8212; судя по всему что-то с шлейфом.</p>
<div id="attachment_241" style="width: 510px" class="wp-caption aligncenter"><a href="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21.jpg"><img decoding="async" aria-describedby="caption-attachment-241" class="wp-image-241" src="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21-1024x768.jpg" alt="Крепление шлейфа экрана Yuandao N101" width="500" height="375" srcset="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21-1024x768.jpg 1024w, https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21-300x225.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><p id="caption-attachment-241" class="wp-caption-text">Крепление шлейфа экрана Yuandao N101</p></div>
<p>Как всегда на помощь пришла синяя изолента &#8212; подклеил снизу шлейфа, зафиксировал сверху &#8212; и все работает.</p>
<p>И, что приятно &#8212; заряжается:</p>
<div id="attachment_242" style="width: 510px" class="wp-caption aligncenter"><a href="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-22.20.57.jpg"><img decoding="async" aria-describedby="caption-attachment-242" class="wp-image-242" src="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-22.20.57-1024x768.jpg" alt="Зарядка планшета N101" width="500" height="375" srcset="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-22.20.57-1024x768.jpg 1024w, https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-22.20.57-300x225.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><p id="caption-attachment-242" class="wp-caption-text">Зарядка планшета N101</p></div>
<p>Ну и собственно сам шнурок для зарядки на фоне самого планшета и повербанка от Xiaomi:</p>
<div id="attachment_244" style="width: 510px" class="wp-caption aligncenter"><a href="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21.56.06.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-244" class="wp-image-244" src="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21.56.06-1024x768.jpg" alt="Зарядка Yuandao N101 от USB" width="500" height="375" srcset="https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21.56.06-1024x768.jpg 1024w, https://mrdaark.com/wp-content/uploads/2015/01/2015-01-18-21.56.06-300x225.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a><p id="caption-attachment-244" class="wp-caption-text">Зарядка Yuandao N101 от USB</p></div>
<p>По хорошему осталось найти зарядку, выдающую честных 2A, иначе, подозреваю, заряжаться будет очень долго. Пока таких в прямой досягаемости нет, но что-нибудь придумаю.</p>
<p>P.S. Паяльником, кроме проводов аккумулятора паял провода к динамику, которые чисто случайно оборвал, хлипкие они <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mrdaark.com/pochinil-planshet-n101.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>С Новым, 2015-м, годом!</title>
		<link>https://mrdaark.com/new-year-2015.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Wed, 31 Dec 2014 16:24:51 +0000</pubDate>
				<category><![CDATA[Мои новости]]></category>
		<category><![CDATA[2015]]></category>
		<category><![CDATA[депресневняк]]></category>
		<category><![CDATA[новый год]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=229</guid>

					<description><![CDATA[Откроет Новый Год тихонько дверь, И в миг, когда часы пробьют двенадцать, Заглянет в дом пушистый белый зверь, Чтоб на двенадцать месяцев остаться.]]></description>
										<content:encoded><![CDATA[<p>Откроет Новый Год тихонько дверь,<br />
И в миг, когда часы пробьют двенадцать,<br />
Заглянет в дом пушистый белый зверь,<br />
Чтоб на двенадцать месяцев остаться.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-231" src="https://mrdaark.com/wp-content/uploads/2014/12/04-300x200.jpg" alt="новый год" width="300" height="200" srcset="https://mrdaark.com/wp-content/uploads/2014/12/04-300x200.jpg 300w, https://mrdaark.com/wp-content/uploads/2014/12/04.jpg 432w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python: RSS to Twitter (oauth версия)</title>
		<link>https://mrdaark.com/rss2twitteroauth.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Sun, 11 Mar 2012 09:08:32 +0000</pubDate>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[twitter]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=188</guid>

					<description><![CDATA[Старый вариант репостинга в твиттер из RSS давно не работает. Снова понадобилась такая штука, сделал новый вариант репостинга через oauth. Используются модули oauth-python-twitter2 и python-bitly. Все предельно просто, настройка заключается в заполнении значений переменных bit_api=""bit_login=""consumer_key=""consumer_secret=""access_key=""access_secret=""rss_url="/rss" После чего запуск скрипта в cron в соотвествии с требованиями по скорости постинга. Можно в принципе и в CMS встроить, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://mrdaark.com/rss2twitter.html" title="Python: RSS to Twitter" target="_blank">Старый вариант репостинга в твиттер из RSS</a> давно не работает.</p>
<p>Снова понадобилась такая штука, сделал новый вариант репостинга через oauth.</p>
<p>Используются модули <a href="http://code.google.com/p/oauth-python-twitter2/" title="oauth-python-twitter2" target="_blank"rel="nofollow">oauth-python-twitter2</a> и <a href="http://code.google.com/p/python-bitly/" title="python-bitly" target="_blank" rel="nofollow">python-bitly</a>. </p>
<p>Все предельно просто, настройка заключается в заполнении значений переменных</p>
<blockquote><p><code><font size="2" face="Consolas, Courier New, Courier, Monospace" color="black"><br />bit_api=<font color="#008000">""</font><br />bit_login=<font color="#008000">""</font><br />consumer_key=<font color="#008000">""</font><br />consumer_secret=<font color="#008000">""</font><br />access_key=<font color="#008000">""</font><br />access_secret=<font color="#008000">""</font><br />rss_url=<font color="#008000">"/rss"</font> <br /></font></code></p></blockquote>
<p>После чего запуск скрипта в cron в соотвествии с требованиями по скорости постинга. Можно в принципе и в CMS встроить, чтобы постинг мгновенный был.</p>
<p>Сам код:</p>
<blockquote><p><code><font size="2" face="Consolas, Courier New, Courier, Monospace" color="black"><br /><font color="#696969">#!/usr/local/bin/python</font><br /><font color="#696969">#&nbsp;-*-&nbsp;coding:&nbsp;utf8&nbsp;-*-</font><br /><font color="#0000ff">import</font> urllib, libxml2, pickle, os<br /><font color="#0000ff">from</font> time <font color="#0000ff">import</font> sleep<br /><font color="#0000ff">from</font> oauthtwitter <font color="#0000ff">import</font> OAuthApi<br /><font color="#0000ff">import</font> bitly<br />bit_api=<font color="#008000">""</font><br />bit_login=<font color="#008000">""</font><br />consumer_key=<font color="#008000">""</font><br />consumer_secret=<font color="#008000">""</font><br />access_key=<font color="#008000">""</font><br />access_secret=<font color="#008000">""</font><br />rss_url=<font color="#008000">"/rss"</font><br /><font color="#0000ff">if</font> __name__ == <font color="#008000">'__main__'</font>:<br />&nbsp;&nbsp;&nbsp;&nbsp;doc = libxml2.parseFile(rss_url)<br />&nbsp;&nbsp;&nbsp;&nbsp;links=[]<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">for</font> item <font color="#0000ff">in</font> doc.xpathEval(<font color="#008000">'//channel/item/link'</font>):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;links.append(item.content)<br />&nbsp;&nbsp;&nbsp;&nbsp;titles=[]<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">for</font> item <font color="#0000ff">in</font> doc.xpathEval(<font color="#008000">'//channel/item/title'</font>):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;titles.append(item.content)<br />&nbsp;&nbsp;&nbsp;&nbsp;rss_path = <b>os</b>.path.join(<b>os</b>.path.dirname(__file__), <font color="#008000">'rss.db'</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;file = <b>open</b> (rss_path)<br />&nbsp;&nbsp;&nbsp;&nbsp;old_links=<b>pickle</b>.load(file)<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>file</b>.close()<br />&nbsp;&nbsp;&nbsp;&nbsp;items=[]<br />&nbsp;&nbsp;&nbsp;&nbsp;f=<font color="#008000">&nbsp;0</font><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">for</font> x <font color="#0000ff">in</font> <b>xrange</b>(<font color="#008000">&nbsp;0</font>,<b>len</b>(links)):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">for</font> old <font color="#0000ff">in</font> old_links:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f=<font color="#008000">&nbsp;0</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (old==links[x]):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f=<font color="#008000">1</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">break</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (f==<font color="#008000">&nbsp;0</font>):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items.append(x)<br />&nbsp;&nbsp;&nbsp;&nbsp;twitter = OAuthApi(consumer_key, consumer_secret, access_key, access_secret)<br />&nbsp;&nbsp;&nbsp;&nbsp;bitly_api = bitly.Api(bit_login, bit_api)<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">for</font> x <font color="#0000ff">in</font> items:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title=titles[x].decode(<font color="#008000">"utf8"</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> <b>len</b>(title)&lt;=<font color="#008000">120</font>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">print</font> <font color="#008000">"link&nbsp;%s:&nbsp;%s"</font> % (x,links[x])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> x!=<font color="#008000">&nbsp;0</font>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(<font color="#008000">15</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">try</font>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;twitter.UpdateStatus(title+<font color="#008000">"&nbsp;"</font>+bitly_api.shorten(links[x]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">#print&nbsp;title.encode("utf8")+"&nbsp;"+bitly_api.shorten(links[x])</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">except</font> ValueError:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">pass</font><br />&nbsp;&nbsp;&nbsp;&nbsp;file=<b>open</b>(rss_path,<font color="#008000">"w"</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;ser=<b>pickle</b>.dump(links,file)<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>file</b>.close()<br /></font></code></p></blockquote>
<p>Критика, как обычно, приветствуется.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Перевод текстов посредством Bing API (устарело)</title>
		<link>https://mrdaark.com/perevod-tekstov-posredstvom-bing-api.html</link>
					<comments>https://mrdaark.com/perevod-tekstov-posredstvom-bing-api.html#comments</comments>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Thu, 23 Jun 2011 13:44:40 +0000</pubDate>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[bing api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[soap]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=180</guid>

					<description><![CDATA[Сегодня, в связи с тем что гугл собирается закрывать свой translate api, таки собрался и сотворил класс для перевода текста через SOAP сервис Bing В связи с тем, что по каким-то странным обстоятельствам нормальной документации нет, а есть только куцый пример на VB (о ужас!) и C# с использованием видимо готовых библиотек пришлось повозиться и [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Сегодня, в связи с тем что гугл собирается закрывать свой translate api, таки собрался и сотворил класс для перевода текста через SOAP сервис <a href="http://www.bing.com/developers/">Bing</a></p>
<p>В связи с тем, что по каким-то странным обстоятельствам нормальной документации нет, а есть только куцый пример на VB (о ужас!) и C# с использованием видимо готовых библиотек пришлось повозиться и подбирать параметры и вид, в котором надо данные отправить сервису, чтоб он не ругался непонятными словами.</p>
<p>В результате родилось вот что:</p>
<blockquote><p><code><font color="#cc6633">&lt;?php</font><br /><font color="#0000ff">class</font>  Bing_Translate_API {    <br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">function</font> translate(<font color="#cc6633">$text</font>, <font color="#cc6633">$from</font> = <font color="#008000">'en'</font>, <font color="#cc6633">$to</font> = <font color="#008000">'ru'</font>) {<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (mb_strlen(<font color="#cc6633">$text</font>)&gt;<font color="#008000">2000</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">echo</font> <font color="#008000">"шмахтунг\n"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return false</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$c</font>=<font color="#0000ff">new</font> SoapClient(<font color="#008000">"http://api.bing.net/search.wsdl"</font>,<font color="#0000ff">array</font>(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"AppId"</font>=&gt;<font color="#008000">"bingApiId"</font>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Version"</font>=&gt;<font color="#008000">"2.2"</font>   <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;));<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$arr</font>=<font color="#0000ff">array</font>(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"parameters"</font>=&gt;<font color="#0000ff">array</font>(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"AppId"</font>=&gt;<font color="#008000">"bingApiId"</font>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Market"</font>=&gt;<font color="#008000">"en-us"</font>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Version"</font>=&gt;<font color="#008000">"2.2"</font>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Sources"</font>=&gt;<font color="#0000ff">array</font>(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Translation"</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Translation"</font>=&gt;<font color="#0000ff">array</font>(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"SourceLanguage"</font>=&gt;<font color="#cc6633">$from</font>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"TargetLanguage"</font>=&gt;<font color="#cc6633">$to</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">"Query"</font>=&gt;<font color="#cc6633">$text</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$r</font>=<font color="#cc6633">$c</font>-&gt;Search(<font color="#cc6633">$arr</font>);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<font color="#0000ff">isset</font>(<font color="#cc6633">$r</font>-&gt;parameters-&gt;Translation-&gt;Results-&gt;TranslationResult-&gt;TranslatedTerm))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#cc6633">$r</font>-&gt;parameters-&gt;Translation-&gt;Results-&gt;TranslationResult-&gt;TranslatedTerm;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">echo</font> <font color="#008000">"ахтунг\n"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return false</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><font color="#cc6633">?&gt;</font> <br /></font></code></p></blockquote>
<p>а вызывать пользоваться этим безобразием теперь вообщем-то просто:</p>
<blockquote><p><code><font color="#cc6633">&lt;?php</font><br /><font color="#0000ff">echo</font> Bing_Translate_API::translate(<font color="#008000">"text&nbsp;to&nbsp;translate"</font>,<font color="#008000">"en"</font>,<font color="#008000">"ru"</font>);    <br /><font color="#cc6633">?&gt;</font> <br /></font></code></p></blockquote>
<p>Кроме того, выяснилось, что у Bing API есть ограничение на размер запроса примерно в 2кБ текста. А Примерно потому, что через раз он текст с размером 2048 символов не переводил, уж не знаю почему.</p>
<p>BingApiId получать по ссылке <a href="http://www.bing.com/developers/">http://www.bing.com/developers/</a></p>
<p>З.Ы. я знаю что код кривой, и при малейшем чихе упадет, но делать ничего не буду, это есть пример <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mrdaark.com/perevod-tekstov-posredstvom-bing-api.html/feed</wfw:commentRss>
			<slash:comments>85</slash:comments>
		
		
			</item>
		<item>
		<title>Изобретая велосипеды: xmlrpc</title>
		<link>https://mrdaark.com/izobretaya-velosipedy-xmlrpc.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Tue, 19 Apr 2011 08:29:47 +0000</pubDate>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[metaWeblog]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xmlrpc]]></category>
		<category><![CDATA[xmlrpc_encode_request]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[сайты]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=165</guid>

					<description><![CDATA[Вчера озаботился возможностью что-то опубликовать в блоке посредством xmlrpc из php. Проковырявшись в общей сложности часа 4 с библиотекой xmlrpc и встроенной функцией xmlrpc_encode_equest и так и не добившись нормальной работы всего этого безобразия, собрался и сегодня за 1.5 часа сделал свой велосипед 🙂 &#60;?php/*&#160;*&#160;Велосипед&#160;для&#160;работы&#160;с&#160;xmlrpc&#160;*&#160;версия&#160;0.1beta&#160;*&#160;*&#160;Copyright&#160;(c)&#160;2011&#160;mrdaark.&#160;*&#160;Все&#160;права&#160;защищены&#160;*&#160;&#160;*/&#160;/*&#160;*&#160;Функция&#160;для&#160;отправки&#160;запроса&#160;на&#160;xmlrpc&#160;сервер&#160;*&#160;использует&#160;библиотеку&#160;curl&#160;*&#160;в&#160;качестве&#160;параметров:&#160;*&#160;@url&#160;-&#160;url&#160;адрес&#160;сервера&#160;*&#160;@request&#160;-&#160;запрос&#160;формируемый&#160;с&#160;помощью&#160;функции&#160;xmlrpc_request&#160;*/function xmlrpc_send($url,$request){&#160;&#160;&#160;&#160;if(!function_exists('curl_init')) {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;die ("Curl&#160;PHP&#160;package&#160;not&#160;installed\n");&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;&#160;$ch = curl_init();&#160;&#160;&#160;&#160;curl_setopt($ch, CURLOPT_URL, $url);&#160;&#160;&#160;&#160;curl_setopt($ch, CURLOPT_HEADER, false);&#160;&#160;&#160;&#160;curl_setopt($ch, CURLOPT_HTTPHEADER, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Вчера озаботился возможностью что-то опубликовать в блоке посредством xmlrpc из php.</p>
<p><a href="https://mrdaark.com/wp-content/uploads/2011/04/xmlrpc.jpg"><img loading="lazy" decoding="async" src="https://mrdaark.com/wp-content/uploads/2011/04/xmlrpc.jpg" alt="" title="xmlrpc" width="128" height="136" class="aligncenter size-full wp-image-169" /></a></p>
<p>Проковырявшись в общей сложности часа 4 с библиотекой <a href="http://phpxmlrpc.sourceforge.net/" rel="nofollow">xmlrpc</a> и встроенной функцией <a href="http://ru2.php.net/manual/en/function.xmlrpc-encode-request.php" rel="nofollow">xmlrpc_encode_equest</a> и так и не добившись нормальной работы всего этого безобразия, собрался и сегодня за 1.5 часа сделал свой велосипед <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<blockquote><p><code><font size="2" face="Consolas, Courier New, Courier, Monospace" color="black"><font color="#cc6633">&lt;?php</font><br /><font color="#696969">/*</font><br /><font color="#696969">&nbsp;*&nbsp;Велосипед&nbsp;для&nbsp;работы&nbsp;с&nbsp;xmlrpc</font><br /><font color="#696969">&nbsp;*&nbsp;версия&nbsp;0.1beta</font><br /><font color="#696969">&nbsp;*</font><br /><font color="#696969">&nbsp;*&nbsp;Copyright&nbsp;(c)&nbsp;2011&nbsp;mrdaark.</font><br /><font color="#696969">&nbsp;*&nbsp;Все&nbsp;права&nbsp;защищены</font><br /><font color="#696969">&nbsp;*&nbsp;</font><br /><font color="#696969">&nbsp;*/</font><br />&nbsp;<br /><font color="#696969">/*</font><br /><font color="#696969">&nbsp;*&nbsp;Функция&nbsp;для&nbsp;отправки&nbsp;запроса&nbsp;на&nbsp;xmlrpc&nbsp;сервер</font><br /><font color="#696969">&nbsp;*&nbsp;использует&nbsp;библиотеку&nbsp;curl</font><br /><font color="#696969">&nbsp;*&nbsp;в&nbsp;качестве&nbsp;параметров:</font><br /><font color="#696969">&nbsp;*&nbsp;@url&nbsp;-&nbsp;url&nbsp;адрес&nbsp;сервера</font><br /><font color="#696969">&nbsp;*&nbsp;@request&nbsp;-&nbsp;запрос&nbsp;формируемый&nbsp;с&nbsp;помощью&nbsp;функции&nbsp;xmlrpc_request</font><br /><font color="#696969">&nbsp;*/</font><br /><font color="#0000ff">function</font> xmlrpc_send(<font color="#cc6633">$url</font>,<font color="#cc6633">$request</font>)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>(!<a href="http://www.php.net/manual/en/function.function-exists.php">function_exists</a>(<font color="#008000">'curl_init'</font>)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">die</font> (<font color="#008000">"Curl&nbsp;PHP&nbsp;package&nbsp;not&nbsp;installed\n"</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$ch</font> = <a href="http://www.php.net/manual/en/function.curl-init.php">curl_init</a>();<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.php.net/manual/en/function.curl-setopt.php">curl_setopt</a>(<font color="#cc6633">$ch</font>, CURLOPT_URL, <font color="#cc6633">$url</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.php.net/manual/en/function.curl-setopt.php">curl_setopt</a>(<font color="#cc6633">$ch</font>, CURLOPT_HEADER, <font color="#0000ff">false</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.php.net/manual/en/function.curl-setopt.php">curl_setopt</a>(<font color="#cc6633">$ch</font>, CURLOPT_HTTPHEADER, <font color="#0000ff">array</font>(<font color="#008000">"Content-Type:&nbsp;text/xml;&nbsp;charset=utf-8"</font>));<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.php.net/manual/en/function.curl-setopt.php">curl_setopt</a>(<font color="#cc6633">$ch</font>, CURLOPT_POSTFIELDS, <font color="#cc6633">$request</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$response</font> = <a href="http://www.php.net/manual/en/function.curl-exec.php">curl_exec</a>(<font color="#cc6633">$ch</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$response</font> = xmlrpc_decode(<font color="#cc6633">$response</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.php.net/manual/en/function.curl-close.php">curl_close</a>(<font color="#cc6633">$ch</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#cc6633">$response</font>;<br />}<br />&nbsp;<br /><font color="#696969">/*</font><br /><font color="#696969">&nbsp;*&nbsp;Функция&nbsp;формирования&nbsp;xml&nbsp;запроса&nbsp;на&nbsp;xmlrpc</font><br /><font color="#696969">&nbsp;*&nbsp;в&nbsp;качестве&nbsp;параметров:</font><br /><font color="#696969">&nbsp;*&nbsp;@method&nbsp;-&nbsp;вызываемый&nbsp;метод</font><br /><font color="#696969">&nbsp;*&nbsp;@params&nbsp;-&nbsp;массив&nbsp;списка&nbsp;параметров</font><br /><font color="#696969">&nbsp;*/</font><br /><font color="#0000ff">function</font> xmlrpc_request(<font color="#cc6633">$method</font>,<font color="#cc6633">$params</font>)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font> =<font color="#008000">"&lt;?xml&nbsp;version=\"1.0\"&nbsp;encoding=\"utf-8\"?&gt;\n"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;methodCall&gt;&lt;methodName&gt;"</font>.<font color="#cc6633">$method</font>.<font color="#008000">"&lt;/methodName&gt;&lt;params&gt;"</font>;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.is-array.php">is_array</a>(<font color="#cc6633">$params</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">foreach</font> (<font color="#cc6633">$params</font> <font color="#0000ff">as</font> <font color="#cc6633">$v</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.is-numeric.php">is_numeric</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;param&gt;&lt;value&gt;&lt;int&gt;"</font>.<font color="#cc6633">$v</font>.<font color="#008000">"&lt;/int&gt;&lt;/value&gt;&lt;/param&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-string.php">is_string</a> (<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;param&gt;&lt;value&gt;&lt;string&gt;"</font>.<font color="#cc6633">$v</font>.<font color="#008000">"&lt;/string&gt;&lt;/value&gt;&lt;/param&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-bool.php">is_bool</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;param&gt;&lt;value&gt;&lt;boolean&gt;"</font>. (<font color="#cc6633">$v</font> ? <font color="#008000">"1"</font>:<font color="#008000">"0"</font>) .<font color="#008000">"&lt;/boolean&gt;&lt;/value&gt;&lt;/param&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}            <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-array.php">is_array</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;param&gt;"</font>._xmlrpc_genstruct(<font color="#cc6633">$v</font>).<font color="#008000">"&lt;/param&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;/params&gt;&lt;/methodCall&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#cc6633">$xml</font>;<br />}<br />&nbsp;<br /><font color="#696969">/*</font><br /><font color="#696969">&nbsp;*&nbsp;Функция&nbsp;формирования&nbsp;именованной&nbsp;структуры</font><br /><font color="#696969">&nbsp;*&nbsp;в&nbsp;качестве&nbsp;параметров:</font><br /><font color="#696969">&nbsp;*&nbsp;@params&nbsp;-&nbsp;массив&nbsp;списка&nbsp;параметров</font><br /><font color="#696969">&nbsp;*/</font><br /><font color="#0000ff">function</font> _xmlrpc_genstruct(<font color="#cc6633">$params</font>)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.is-array.php">is_array</a>(<font color="#cc6633">$params</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>=<font color="#008000">"&lt;value&gt;&lt;struct&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">foreach</font> (<font color="#cc6633">$params</font> <font color="#0000ff">as</font> <font color="#cc6633">$k</font>=&gt;<font color="#cc6633">$v</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//формируем&nbsp;поля&nbsp;запроса.</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.is-numeric.php">is_numeric</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;member&gt;&lt;name&gt;"</font>.<font color="#cc6633">$k</font>.<font color="#008000">"&lt;/name&gt;&lt;value&gt;&lt;int&gt;"</font>.<font color="#cc6633">$v</font>.<font color="#008000">"&lt;/int&gt;&lt;/value&gt;&lt;/member&gt;"</font>;                <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-string.php">is_string</a> (<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;member&gt;&lt;name&gt;"</font>.<font color="#cc6633">$k</font>.<font color="#008000">"&lt;/name&gt;&lt;value&gt;&lt;string&gt;"</font>.<font color="#cc6633">$v</font>.<font color="#008000">"&lt;/string&gt;&lt;/value&gt;&lt;/member&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-bool.php">is_bool</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;member&gt;&lt;name&gt;"</font>.<font color="#cc6633">$k</font>.<font color="#008000">"&lt;/name&gt;&lt;value&gt;&lt;boolean&gt;"</font>. (<font color="#cc6633">$v</font> ? <font color="#008000">"1"</font>:<font color="#008000">"0"</font>) .<font color="#008000">"&lt;/boolean&gt;&lt;/value&gt;&lt;/member&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}            <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-array.php">is_array</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;member&gt;&lt;name&gt;"</font>.<font color="#cc6633">$k</font>.<font color="#008000">"&lt;/name&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (_xmlrpc_is_struct(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=_xmlrpc_genstruct(<font color="#cc6633">$v</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=_xmlrpc_genarray(<font color="#cc6633">$v</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;/member&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}             <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;/struct&gt;&lt;/value&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#cc6633">$xml</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else</font><br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#008000">""</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;<br /><font color="#696969">/*</font><br /><font color="#696969">&nbsp;*&nbsp;Функция&nbsp;формирования&nbsp;неименованного&nbsp;массива</font><br /><font color="#696969">&nbsp;*&nbsp;в&nbsp;качестве&nbsp;параметров:</font><br /><font color="#696969">&nbsp;*&nbsp;@params&nbsp;-&nbsp;массив&nbsp;списка&nbsp;параметров</font><br /><font color="#696969">&nbsp;*/</font><br /><font color="#0000ff">function</font> _xmlrpc_genarray(<font color="#cc6633">$params</font>)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.is-array.php">is_array</a>(<font color="#cc6633">$params</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//проверим&nbsp;необходимость&nbsp;добавления&nbsp;имени</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>=<font color="#008000">"&lt;value&gt;&lt;array&gt;&lt;data&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">foreach</font> (<font color="#cc6633">$params</font> <font color="#0000ff">as</font> <font color="#cc6633">$v</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//формируем&nbsp;поля&nbsp;запроса.</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.is-numeric.php">is_numeric</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;value&gt;&lt;int&gt;"</font>.<font color="#cc6633">$v</font>.<font color="#008000">"&lt;/int&gt;&lt;/value&gt;"</font>;                <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-string.php">is_string</a> (<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;value&gt;&lt;string&gt;"</font>.<font color="#cc6633">$v</font>.<font color="#008000">"&lt;/string&gt;&lt;/value&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-bool.php">is_bool</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;value&gt;&lt;boolean&gt;"</font>. (<font color="#cc6633">$v</font> ? <font color="#008000">"1"</font>:<font color="#008000">"0"</font>) .<font color="#008000">"&lt;/boolean&gt;&lt;/value&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}            <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else if</font> (<a href="http://www.php.net/manual/en/function.is-array.php">is_array</a>(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (_xmlrpc_is_struct(<font color="#cc6633">$v</font>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=_xmlrpc_genstruct(<font color="#cc6633">$v</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=_xmlrpc_genarray(<font color="#cc6633">$v</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$xml</font>.=<font color="#008000">"&lt;/data&gt;&lt;/array&gt;&lt;/value&gt;"</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#cc6633">$xml</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#008000">""</font>;<br />}<br />&nbsp;<br /><font color="#696969">/*</font><br /><font color="#696969">&nbsp;*&nbsp;Функция&nbsp;проверки&nbsp;переданного&nbsp;массива&nbsp;на</font><br /><font color="#696969">&nbsp;*&nbsp;предмет&nbsp;необходимости&nbsp;формирования</font><br /><font color="#696969">&nbsp;*&nbsp;именованной&nbsp;структуры</font><br /><font color="#696969">&nbsp;*&nbsp;в&nbsp;качестве&nbsp;параметров:</font><br /><font color="#696969">&nbsp;*&nbsp;@params&nbsp;-&nbsp;массив&nbsp;списка&nbsp;параметров</font><br /><font color="#696969">&nbsp;*/</font><br /><font color="#0000ff">function</font> _xmlrpc_is_struct(<font color="#cc6633">$params</font>)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$keys</font>=<a href="http://www.php.net/manual/en/function.array-keys.php">array_keys</a>(<font color="#cc6633">$params</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">foreach</font> (<font color="#cc6633">$keys</font> <font color="#0000ff">as</font> <font color="#cc6633">$k</font>=&gt;<font color="#cc6633">$v</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<font color="#cc6633">$k</font>!=<font color="#cc6633">$v</font>) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return true</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return false</font>;<br />}<br /><font color="#cc6633">?&gt;</font> <br /></font></code></p></blockquote>
<p>Пользоваться безобразием просто, вот примерчик постинга в блог на wordpress:</p>
<blockquote><p><code><font size="2" face="Consolas, Courier New, Courier, Monospace" color="black"><<font color="#cc6633">&lt;?php</font><br /><font color="#0000ff">require</font>(<font color="#008000">"xmlrpc.php"</font>);<br /><font color="#696969">//формируем&nbsp;массив&nbsp;с&nbsp;параметрами&nbsp;запроса</font><br /><font color="#cc6633">$content</font>=<font color="#0000ff">array</font>();<br /><font color="#cc6633">$content</font>[<font color="#008000">'title'</font>]=<font color="#008000">"Тестовая&nbsp;запись"</font>;<br /><font color="#cc6633">$content</font>[<font color="#008000">'categories'</font>] = <font color="#0000ff">array</font>(<font color="#008000">"news"</font>);<br /><font color="#cc6633">$content</font>[<font color="#008000">'description'</font>]=<font color="#008000">"Описание&nbsp;тестовой&nbsp;запись&nbsp;(то,&nbsp;что&nbsp;до&nbsp;тега&nbsp;&lt;!--more--&gt;)"</font>;<br /><font color="#cc6633">$content</font>[<font color="#008000">'mt_text_more'</font>]=<font color="#008000">"Собственно&nbsp;основная&nbsp;часть&nbsp;постинга"</font>;<br /><font color="#cc6633">$content</font>[<font color="#008000">'mt_keywords'</font>]=<font color="#008000">"ключевые,&nbsp;слова"</font>;<br />&nbsp;<br /><font color="#696969">//формируем&nbsp;xml&nbsp;запрос</font><br /><font color="#cc6633">$request</font>=xmlrpc_request(<font color="#008000">"metaWeblog.newPost"</font>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">array</font>(<font color="#008000">1</font>,<font color="#008000">"admin"</font>,<font color="#008000">"password"</font>,<font color="#cc6633">$content</font>,<font color="#0000ff">false</font>));<br />&nbsp;<br /><font color="#696969">//отправляем&nbsp;серверу</font><br />xmlrpc_send(<font color="#008000">"http://example.com/wordpress/xmlrpc.php"</font>,<font color="#cc6633">$request</font>);<br /><font color="#cc6633">?&gt;</font> <br /></font></code></p></blockquote>
<p>вроде все просто и понятно. Работает на данный момент только с кодировкой UTF-8. Собственно и затеялось как раз потому, что два предыдущих варианта напрочь отказывались нормально отправлять в UTF-8.</p>
<p>Реализованы не все типы, возможные в xmlrpc, однако мне для постинга в WordPress этого пока хватит, буде кому понадобится еще чего можете меня попинать &#8212; допишу, ну или сами, а я добавлю со ссылкой на автора <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>P.S. походу wordpress чудит с кавычками. файл исходника <a href="https://dl.dropbox.com/u/1834466/xmlrpc.phps">xmlrpc.phps</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>И смех, и грех.</title>
		<link>https://mrdaark.com/i-smex-i-grex.html</link>
					<comments>https://mrdaark.com/i-smex-i-grex.html#comments</comments>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Wed, 13 Apr 2011 13:37:51 +0000</pubDate>
				<category><![CDATA[Мои новости]]></category>
		<category><![CDATA[адский долбоебизм]]></category>
		<category><![CDATA[ГИБДД]]></category>
		<category><![CDATA[Псков]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=161</guid>

					<description><![CDATA[Нашел сегодня на башорге: В Пскове, если водилы попали в дтп, им нужно выложить по полтыщи деревянных с лица на пиво полицаям, чтоб товарищи гайцы приехали на место дтп в ближайшие пару часов. вчера две тачки столкнулись у супермаркета аккурат напротив главного псковского здания гибдд. думали, раз так, то не придется платить дань в количестве [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Нашел сегодня на башорге:</p>
<blockquote><p>В Пскове, если водилы попали в дтп, им нужно выложить по полтыщи деревянных с лица на пиво полицаям, чтоб товарищи гайцы приехали на место дтп в ближайшие пару часов.</p>
<p>вчера две тачки столкнулись у супермаркета аккурат напротив главного псковского здания гибдд. думали, раз так, то не придется платить дань в количестве тех самых пиццот рублей. ан нет, простояли 11 часов, пока &#171;органы&#187; не соизволили к ним свои попы вытащить. и это при том, что никаких чп и аврала в городе не было.</p>
<p>выводы сами делайте&#8230;</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://mrdaark.com/i-smex-i-grex.html/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Решение задачки для php программистов  с хабра</title>
		<link>https://mrdaark.com/zadachka-from-habrahabr.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Tue, 05 Apr 2011 08:13:24 +0000</pubDate>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=149</guid>

					<description><![CDATA[Увидел на хабре задачку при собеседовании для php программистов http://habrahabr.ru/blogs/php/116686/ Решил попробовать сам ее решить, вроде не сложно. вместе с отладкой, сделал за ~20минут, т.е. в норматив не уложился, что херово. Получилось вот так,  хз насколько это оптимально. Есть идеи что улучшить? &#60;?phpfunction read_conf($path){&#160;&#160;&#160;&#160;$f=file_get_contents($path);&#160;&#160;&#160;&#160;//разбиваем&#160;на&#160;строки&#160;&#160;&#160;&#160;$lines=explode("\n",$f);&#160;&#160;&#160;&#160;$tmp=array();&#160;&#160;&#160;&#160;&#160;//режем&#160;строки&#160;на&#160;key=&#62;value&#160;&#160;&#160;&#160;foreach($lines as $v)&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (trim($v)!="")&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;list($key,$value)=explode("=",$v,2);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$tmp[trim($key)]=trim($value);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;$res=array();&#160;&#160;&#160;&#160;//режем&#160;ключи&#160;по&#160;параметрам&#160;&#160;&#160;&#160;foreach ($tmp as $key=&#62;$value)&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$keys=explode(".",$key);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (count($keys)!=1)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//тут&#160;будем&#160;делать&#160;подмассивчики&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$key=array_pop($keys);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$first_key=array_shift($keys);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (!isset($res[$first_key])) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$res[$first_key]=array();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$pres=&#38;$res[$first_key];&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;while (count($keys)!=&#160;0)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Увидел на хабре задачку при собеседовании для php программистов <a href="http://habrahabr.ru/blogs/php/116686/">http://habrahabr.ru/blogs/php/116686/</a></p>
<p>Решил попробовать сам ее решить, вроде не сложно. вместе с отладкой, сделал за ~20минут, т.е. в норматив не уложился, что херово.</p>
<p>Получилось вот так,  хз насколько это оптимально. Есть идеи что улучшить?</p>
<blockquote><p><code><font size="2" face="Consolas, Courier New, Courier, Monospace" color="black"><font color="#cc6633">&lt;?php</font><br /><font color="#0000ff">function</font> read_conf(<font color="#cc6633">$path</font>)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$f</font>=file_get_contents(<font color="#cc6633">$path</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//разбиваем&nbsp;на&nbsp;строки</font><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$lines</font>=<a href="http://www.php.net/manual/en/function.explode.php">explode</a>(<font color="#008000">"\n"</font>,<font color="#cc6633">$f</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$tmp</font>=<font color="#0000ff">array</font>();<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//режем&nbsp;строки&nbsp;на&nbsp;key=&gt;value</font><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">foreach</font>(<font color="#cc6633">$lines</font> <font color="#0000ff">as</font> <font color="#cc6633">$v</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.trim.php">trim</a>(<font color="#cc6633">$v</font>)!=<font color="#008000">""</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">list</font>(<font color="#cc6633">$key</font>,<font color="#cc6633">$value</font>)=<a href="http://www.php.net/manual/en/function.explode.php">explode</a>(<font color="#008000">"="</font>,<font color="#cc6633">$v</font>,<font color="#008000">2</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$tmp</font>[<a href="http://www.php.net/manual/en/function.trim.php">trim</a>(<font color="#cc6633">$key</font>)]=<a href="http://www.php.net/manual/en/function.trim.php">trim</a>(<font color="#cc6633">$value</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}           <br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$res</font>=<font color="#0000ff">array</font>();<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//режем&nbsp;ключи&nbsp;по&nbsp;параметрам</font><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">foreach</font> (<font color="#cc6633">$tmp</font> <font color="#0000ff">as</font> <font color="#cc6633">$key</font>=&gt;<font color="#cc6633">$value</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$keys</font>=<a href="http://www.php.net/manual/en/function.explode.php">explode</a>(<font color="#008000">"."</font>,<font color="#cc6633">$key</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (<a href="http://www.php.net/manual/en/function.count.php">count</a>(<font color="#cc6633">$keys</font>)!=<font color="#008000">1</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#696969">//тут&nbsp;будем&nbsp;делать&nbsp;подмассивчики</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$key</font>=<a href="http://www.php.net/manual/en/function.array-pop.php">array_pop</a>(<font color="#cc6633">$keys</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$first_key</font>=<a href="http://www.php.net/manual/en/function.array-shift.php">array_shift</a>(<font color="#cc6633">$keys</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (!<font color="#0000ff">isset</font>(<font color="#cc6633">$res</font>[<font color="#cc6633">$first_key</font>])) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$res</font>[<font color="#cc6633">$first_key</font>]=<font color="#0000ff">array</font>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$pres</font>=&amp;<font color="#cc6633">$res</font>[<font color="#cc6633">$first_key</font>];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">while</font> (<a href="http://www.php.net/manual/en/function.count.php">count</a>(<font color="#cc6633">$keys</font>)!=<font color="#008000">&nbsp;0</font>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{            <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$tmp_key</font>=<a href="http://www.php.net/manual/en/function.array-shift.php">array_shift</a>(<font color="#cc6633">$keys</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font> (!<font color="#0000ff">isset</font>(<font color="#cc6633">$pres</font>[<font color="#cc6633">$tmp_key</font>]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$pres</font>[<font color="#cc6633">$tmp_key</font>]=<font color="#0000ff">array</font>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$pres</font>=&amp;<font color="#cc6633">$pres</font>[<font color="#cc6633">$tmp_key</font>];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$pres</font>[<font color="#cc6633">$key</font>]=<font color="#cc6633">$value</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">else</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cc6633">$res</font>[<font color="#cc6633">$key</font>]=<font color="#cc6633">$value</font>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font> <font color="#cc6633">$res</font>;<br />}<br /><a href="http://www.php.net/manual/en/function.print-r.php">print_r</a>(read_conf(<font color="#008000">"conf.ini"</font>));<br /><font color="#cc6633">?&gt;</font> <br /></font></code></p></blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Переезд на новый ВДС</title>
		<link>https://mrdaark.com/pereezd-na-novyj-vds.html</link>
		
		<dc:creator><![CDATA[mrdaark]]></dc:creator>
		<pubDate>Mon, 29 Nov 2010 21:06:38 +0000</pubDate>
				<category><![CDATA[Мои новости]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[миграция]]></category>
		<category><![CDATA[сайты]]></category>
		<guid isPermaLink="false">https://mrdaark.com/?p=145</guid>

					<description><![CDATA[Собственно сегодня с утреца получил письмо от хостера, о том что freebsd 6 больше не комильфо и пора бы обновить сервер до 8ки (а мне все лень было): вообщем пол дня продолбался, но все перенес, заодно обнаружилось, что я забыл продлить домен этого блога и он радостно уже неделю был в дауне, посему быстренько продлил [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Собственно сегодня с утреца получил письмо от <a href="http://firstvds.ru/index.html?from=19997">хостера</a>, о том что freebsd 6 больше не комильфо и пора бы обновить сервер до 8ки (а мне все лень было):</p>
<p><a href="https://mrdaark.com/wp-content/uploads/2010/11/pereezd.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-146" title="письмо про переезд на freebsd 8" src="https://mrdaark.com/wp-content/uploads/2010/11/pereezd.png" alt="" width="954" height="518" srcset="https://mrdaark.com/wp-content/uploads/2010/11/pereezd.png 954w, https://mrdaark.com/wp-content/uploads/2010/11/pereezd-300x162.png 300w" sizes="auto, (max-width: 954px) 100vw, 954px" /></a></p>
<p>вообщем пол дня продолбался, но все перенес, заодно обнаружилось, что я забыл продлить домен этого блога и он радостно уже неделю был в дауне, посему быстренько <a href="http://webst.ru/?id=6414 ">продлил домен</a> и теперь все работает. субъективно работает быстрее чем раньше, но пока сложно сказать, посмотрим что будет когда появиться хоть какая то нагрузка&#8230;</p>
<p>P.S. В посте аж две реферальные ссылки, по ним можно <del datetime="2010-11-29T20:53:09+00:00">не</del> нажимать <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
