Сервис Интернет Объявлений

 
29
Январь
2013

Параллельные (фоновые) процессы в PHP




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

Второе применение — системные ответы платежным системам об успешности операции. В данном случае при длительной обработке запроса (записи в БД, отправка письма, СМС…), удаленный сервер может и не дождаться своевременного ответа (в виде сгенерированной страницы) и свалиться в таймаут.

Порывшись в интернетах и перебрав массу вариантов, я пришел к следующему решению.

Берем функцию:

function launchBackgroundProcess($call,$file=false,$errors=false)
{
      if (PHP_OS == 'WINNT' || PHP_OS == 'WIN32')
      {
      $handle=popen('start /MIN '.$call, "r");
      if($handle===false)
      trigger_error("Can't start process $call",E_USER_ERROR);
      else pclose($handle);
      }
      else{
      $add = "";
      if($file===false){
      $file = '/dev/null';
      }
      if($errors!==false){
      $add = " 2> ".$errors;
      }
      exec($cmd = ($call.' > '.$file.$add.' &'));
      }
}

И обращаемся к ней:

launchBackgroundProcess('wget http://yoursite.com/yourfile.php');

В файле http://yoursite.com/yourfile.php находятся все хроноемкие процессы, которые нужно выполнить в фоне, но результат которых уже не будет возвращен в сформированную страницу.
Причем, можно передавать GET-параметры:

launchBackgroundProcess('wget http://yoursite.com/yourfile.php?param1=val1');

Учтите, что функция exec() очень часто пребывает в отключенном состоянии из-за режима безопасности на вашем хостинге. Если не работает — пишите в саппорт.

24
Январь
2013

Интернет-объявления: эхо из прошлого?

Вы уже заметили мое пристрастие к доскам объявлений в Интернете.  Мне также любопытны всякие новинки этой отрасли. Особенно ,когда их проталкивают через оффлайновые каналы рекламы.

В последнее время по радио активно рекламируют сайт бесплатных объявлений с незатейливым названием «Бесплатка».

Открываем,  и что мы видим?

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

При первом входе я обнаружил, что текст ограничивается то ли 200, то ли 250 символами. Это сущие копейки. Годится для краткого содержания или координат.

Не смотря на суточный траффик в несколько тысяч хостов, обновления доски крайне редки. Может, счетчик левый, а?

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

Перед публикацией этого поста решил зайти на доску еще раз. Но, логично, что пароль я забыл. Попытки напомнить его ни к чему хорошему не привели: телефон уже используется, а напоминание происходит через е-мейл.

Ну не смогли товарищи, которые вбухали состояние в радио-рекламу, довести до ума систему восстановления пароля!

Ладно. Пишу начальству.. Или не пишу? На сайте нет координат обратной связи с администрацией!!!!  И это в век развития е-мейла, твиттера, чатов, телефонов и соцсетей!!!

Вспоминаются полуночные общения с колл-центром РИА, подробные ответы от Сландо и Торга..  А тут на тебе. Получаем изолированный , полусырой, ограниченный сайт объявлений с огромным паблисити.

Вот они особенности нашего бизнеса. Как говорил великий О’Гилви: «Покупатель не идиот: это твоя жена».

А мораль?  Мораль продавать то, чем бы с удовольствием пользовался сам. Например, сайтом http://zapchasti-na-mitsubishi.ru/ по продаже оригинальных и неоригинальных запчастей на Mitsubishi.

 

 

 

 

09
Январь
2013

PHP, SMTP и BCC. Отправка почты Гугла через PHP.

Итак, столкнулся с проблемой быстрой отправки электронной почты средствами PHP.
Встроенная функция mail() работает и вроде-бы не теряет письма. Но задержки с отправкой оставляют желать лучшего, т.к. среднее время доставки составляет около 2 минут.
Согласитесь, за две минуты пользователь может подумать, что сайт не работает и просто уйти. А когда все-таки получит уведомление (и если оно не попадет в СПАМ), то вряд ли вернется и продолжит работу.

В таких случаях нужно пользоваться отдельным SMTP сервером для быстрой и качественной отправки. Можно даже воспользоваться платными сервисами СМС-рассылок, но здесь я буду рассматривать именно бесплатный вариант. А конкретнее — почту от Google.

Эксперименты по отправке почты с SMTP я ставил на Google Apps, предварительно повесив на него один из своих доменов. Бесплатная версия позволяет зарегистрировать до 10 корпоративных почтовых ящиков вида myname@mydomain.com. Почту можно отправлять с каждого из этих ящиков, отправителем будет именно тот ящик, с которого отправили. Кое-кто считает это недостатком отдельного SMTP-сервера. Но мне и не нужно указывать произвольного отправителя. Поэтому регистрируем «красивый» е-мейл и продолжаем кодить.

Для отправки писем через PHP и гугловский SMTP я использовал компонент PEAR.
По этой теме уже многое исписано, дублировать здесь я не намерен.

От себя добавлю ту инфу, которую не так просто нарыть: правильную отправку скрытого письма BCC (blind carbon copy).

Кое-кто советует в массиве $headers прописать элемент BCC. Но мои эксперименты показали, что это не работает.

Выход: нужно создать массив получателей.

Например, так:

$recipients[«To»] = $to;

$recipients[«Bcc»] = $bcc;

А отправку производить следующим образом:   $mail = $smtp->send($recipients, $headers, $message);

Только в такой комбинации я отправил письмо получателю и сохранил резервную копию на теневом ящике.

Вот и все, о чем я хотел сказать в рамках этого Очерка.

А на заметку владельцам легендарных Крайслеров рекомендую полезную ссылку http://www.g-parts.ru/chrysler/ , посвященную ремонту, обслуживанию и диагностике этих американских каров.

 

 

 

04
Январь
2013

Полезное: регулярки

Буквально вчера столкнулся с необходимостью сформировать внешний PHP-массив из Экзелевского столбца чисел. Чисел было достаточно много.
Кто не вкурсе — объясняю. PHP-массив должен быть записан в формате
«число1″,
«число2″,

«число n»

В исходном варианте у меня не было кавычек и запятых.

Что делать? Ведь чисел много. Проставлять ручками все это = себя не уважать.

Выход: регулярные выражения.

Открываем Notepad ++ и вставляем туда исходный столбец.

Далее заходим Search — Replace и ставим селектор на Regular expression.
Сперва проставим кавычки.
В поле Find what пишем выражение (.+) , а в Replace with — «\1″ .
Давим Replace all. Вуаля: каждая строка обрела свои кавычки.

Далее простановка запятых.
В поле Find what пишем \n или \r , а в Replace with — ,.
Если все сделано правильно, то после каждого значения, после закрывающейся кавычки появится запятая.

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

Но если Вам этого покажется маловато, тогда рекомендую выполнить тюнинг Тойота прадо 150 у настоящих профессионалов. Тогда уж точно настроение выше крышы!

12
Декабрь
2012

порядок в голове — порядок повсюду

уборка перед приходом гостейЧто мы обычно делаем перед приходом гостя/гостей?

Как правило, помимо организации стола и увеселительной программы, мы делаем уборку в доме. Наводим так называемый порядок.

Наводя порядок перед приходом гостя, мы тем самым подчеркиваем, что перманентное средневзвешенное состояние нашего жилья — это беспорядок.
При этом ни одна хозяйка не признается, что она живет в беспорядке.

Налицо полный антагонизм.

Что же получается на деле?

На деле по своим собственным ощущениям мы живем в «порядке». Но такой порядок, почему-то, для гостя не применим. Для гостя нужно делать лучше!
Полагаю, что это стремление любой ценой «угодить» гостю проистекает из известного «относись к другим так, как бы ты хотел, чтобы относились к тебе». Но на практике этот постулат работает редко.
Взять хотя-бы сферу денег. Вы заняли человеку определенную сумму. Думаете он вам займет когда-нибудь? Не-а! Человек ее и не отдаст, и всем нутром будет желать скорейшей вашей кончины.

А теперь о быте: живите так, чтобы это было не стыдно показать в любой момент времени. Таким образом все противоречия практически стирается плюс кое-где даже повышается самооценка.

И небольшая рекомендация: читайте новости из газет и фильтруйте неправдивую информацию из недостоверных источников.

06
Декабрь
2012

WordPress, PHP и запросы

Столкнулся с одной интересной фишкой, связанной с работой Вордпресса. О которой, собственно, напишу здесь.

1. Имеется сайт на вордпрессе. Например mysite.com
2. Параметры — Постоянные ссылки настроены в режиме /%postname%/ . Это значит ,что страницы на сайте имеют вид mysite.com/samplepage/
3. Установлен плагин Grimp — PHP, позволяющий реализовывать на страницах PHP-код (< ? рhр {code} ? >).
4. Есть обычная страница с PHP-кодом mysite.com/mypage/, которая принимает и GET- ,и POST-запросы.

Но если в корне сайта создать папку mypage, то страница больше не принимает ни GET- ,ни POST-запросы. В отдельных случаях может перестать отображаться контент: Вы увидете index of /mypage и перечень файлов.

Если папку переименовать нельзя (нужны прямые ссылки), то выход можно найти в правке файла .htaccess
Следует добавить:
RewriteCond %{REQUEST_URI} ^/mypage
RewriteRule . /index.php [L]

Но тогда будут недоступны файлы в подкаталогах (css, js), которые могут находиться в mypage

Для этого добавим самый популярный знак вконец имени папки:

RewriteCond %{REQUEST_URI} ^/mypage$
RewriteRule . /index.php [L]

Теперь должно работать!

upd: если POST-запросы все-таки не проходят, посмотрите внимательно на action = в form…. Чтобы адрес четко совпадал!

Не менее актуально: близятся холода, выпадает снег. Чтобы застраховаться от возможных зимних болезней, но при этом выглядеть модно и стильно, рекомендую взглянуть на винтажное пальто лолита. Согласитесь, за свои деньги это пальтишко порадует любую уважающую себя девушку.

04
Декабрь
2012

MYSQL: меняем несколько столбцов местами

Периодически возникает необходимость подвигать столбцы таблицах SQL. Это актуально, когда нужен определенный порядок вывода элементов массива, полученных из таблиц базы данных. Либо Вам просто нужно получить заголовки столбцов в определенном порядке.
В панели управления MySQL вручную перетаскивать столбцы пока невозможно.
Но это можно сделать «ручками» через команды.
Переходим на вкладку SQL и пишем

ALTER TABLE `mytable`
MODIFY COLUMN `name` VARCHAR(255) NOT NULL AFTER `telephone`,
MODIFY COLUMN `surname` VARCHAR(255) NOT NULL AFTER `name`,
MODIFY COLUMN `company` VARCHAR(255) NOT NULL AFTER `surname`;

Эта команда построит вряд столбцы name, surname, company в аккурат после столбца telephone в таблице mytable.

Учтите: названия таблиц и колонок заключаются в обратную кавычку (расположена на Ё). При больших объёмах перемещений вся процедура может затянуться. При этом БД будет времено недоступна.

24
Ноябрь
2012

Наблюдения. Тренды

Когда стали массово появляться мп3-плееры в виде телефонов или отдельных гаджетов, народ просто сошел с ума. Каждый третий, или даже чаще, от мала до велика носились с наушниками и что-то слушали. Постоянно.

Я не припомню такого с кассетными плеерами (которые также были доступны), и уж тем более, с СД-плеерами, где для нормальной жизни нужна функция антишока, какой обладали не все девайсы.

Если честно, лично я не понимаю, что можно слушать в наушниках круглые сутки. Проецируя на себя скажу:

  1. передвигаясь на улицах города важно слышать и замечать происходящую вокруг картину. Музыка в ушах сильно притупляет восприятие реальности и реакцию. Результат: вас может сбить даже поезд, если вы идете по рельсам и слушаете «Рамштайн».
  2. от наушников не только садится слух, но и жутко начинают болеть хрящи ушных раковин.
  3. некоторые индивидуумы слушают музыку так громко, что ее могут слышать окружающие на приличных расстояниях, и она же их раздражает.

Сейчас «уличных меломанов» меньше не стало. Но появились другие «маньяки»: те, что читают электронные книги.
Не секрет ,что электронную книгу можно читать на том же телефоне или планшете. Более того, для чтения электронных книг созданы специальные читалки на основе e-ink , подзаряжать которые нужно всего-то раз в месяц (зависит от интенсивности чтения).
А главное, что сами файлы книг становятся все доступнее и доступнее. С одной стороны, «добрые люди» сканируют и оформляют популярные электронные книги, затем выкладывая их на всяческих ресурсах (например, Флибуста). С другой стороны, сейчас развивается целая индустрия недорогих электронных книг (добро пожаловать на Амазон).

Вот и пользуется народ благами человечества: кто музыку слушает, а кто книги читает.

И немаловажным фактором является наличие в телефонах, планшетах и читалках вай-фаев с возможностью оперативного скачивания свеженькой книжонки. Или просто посерфить Интернет и зайти, например на сайт одежды и выбрать модный и актуальный женский пиджак в экостиле высокого качества.
Факт возможности посещения сайтов является явным преимуществом планшетов над стенд-элон мп3-плеерами, т.к. у последних нет ни «вафли», ни нормального дисплея.

22
Ноябрь
2012

Живая поддержка — залог успешной работы и хороших впечатлений

На днях имел контакт со службой поддержки группы сайтов РИА юэй. Дело было в том, что на мой телефон не проходил регистрация аккаунта. Сервис перебрасывал на пустую белую страницу без каких-либо комментариев.
Так как я предпринял несколько попыток регистрации и подачи объявления, я сделал вывод, что мои е-мейл и телефон могли попасть в спам-лист и быть забанеными.

Таким образом я полез в раздел «Контакты и обнаружил» целую кучу телефонных номеров поддержки. Была даже горячая бесплатная линия (0800), куда я и позвонил.

В течение 2-3 минут выяснилось, что на мой телефонный номер еще в 2009 годы был открыт аккаунт. Поэтому система и не позволяла регистрировать на него снова. Более того, мне была отправлена СМС с моими данными для входа в старый заброшенный аккаунт. И я смог снова разместить нужное мне объявление.

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

К сожалению, я не нашел способа связаться с администрацией на замечательном сайте, представляющем собой интернет-магазин сумок. Заказ у них я пока не делал, но уже возникли вопросы. Например, вопрос о доставке сумки в ближнее зарубежье или вопрос о конкретном товаре. Полагаю, что такая «мелочь», как обратная связь способна просто ввести потенциального клиента в длительный ступор и судорожные поиски той самой формы или ссылки для связи с администрацией.
И, похоже, вышеуказанный мною адрес магазина страдает подобной проблемой, оставляя раздел «Бестселлеры» пустым.
Надеюсь, что ребята исправятся и их бизнес пойдет вгору!

21
Октябрь
2012

Создание заготовок и дизайнов e-mail писем на HTML

дизайн шаблона html письмаВсем привет
Вчера стал вопрос об автоматической отправке писем посредством PHP.

На тему PHP-отправки сказано уже очень много, Гугл точно знает. Я лишь остановлюсь на дизайне e-mail письма.

Письма обладают архаичной HTML-структурой, базирующейся на таблицах. Поэтому никаких div’ов и css’ов. Только таблицы и инлайн-стили.

В Интернете есть статьи на тему ручного создания заготовок-темплейтов под письма. Там же перечисляются рекомендации, ограничения , условия использования и прочая ерунда.

Но готовых шаблонов писем мне так быстро найти не удалось.
Зато наткнулся на один зарубежный сервис, специализирующийся на рассылке писем. В его Веб-интерфейсе по адресу campaignmonitor.com/gallery/ можно найти действительно привлекательные шаблоны писем. Для использования шаблонов можно скопировать их в тело PHP-кода и вручную вписать нужный текст.

Можно поступить другим путем: зарегистрироваться на этом сайте. После регистрации Вы сможете создавать письма, выбирать шаблоны и дизайн. Также сможете формировать списки рассылок и так далее. Но, честно сказать, интерфейс сайта мне не понравился. Как по мне, он очень запутанный, отсутствует легкость, свобода и интуитивность.

Более того, сайт вашей панели и главный сайт находятся на разных доменах и я не обнаружил ссылок друг на друга. Поэтому в закладках у себя придется держать два сайта: сайт панели и сайт с заготовками.

Возможно, в будущем я и разберусь с возможностями рассылки Campaignmonitor, но это будет не сегодня. Ведь я пришел за шаблончиком, над которым сейчас и работаю :)

Кстати, если Вам необходимо разместить объявление по Москве, могу предложить хороший сайтец Dorus.ru. Особенно меня порадовало оформление сайта и его шапки, конкретика и недвузначность рубрик, а также возможность смены регионов.
С другой стороны, администраторы доски могли бы позаботится об удобстве подачи: ниспадающий список выбора рубрик — это очень неудобный вариант. Ведь Вам нужно прокручивать список, видимая область которого очень мала. Благо, подать объявление можно из нужной рубрики, предварительно изучив предложения конкурентов… или будущих партнеров.

3 887 просмотров