Рейтинг
0.00
голосов: 0

О блоге

В этом блоге рекомендую публиковать статьи про вёрстку, html, css. Статьи, которые посвящены тем частям сайта или приложения, которые видят пользователи.

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (3)

Maugli AndreyART a1ex

Яндекс ТИЦ средствами php

Как получить Яндекс ТИЦ средствами PHP?

В «глобальной сети» можно найти множество вариантов, вот и я предлагаю свой.

    /**
    * Функция возвращает Яндекс ТИЦ страницы $url
     * 
     * @param string $url
     */
    function getYandexTIC($url) {
        $bar = file_get_contents("http://bar-navig.yandex.ru/u?show=31&url=$url");
        if (!preg_match('/<tcy.+value=\"(\d+)\"/', $bar, $result)) {
            $result = array(0, 0);
        }//if
        return $result[1];
    }

Транслитерация SEF URL в PHP

Немного доработанная функция для транслитерации заголовка в sef url (читаемую ссылку).

Параметры:
  • $string — исходная строка
  • $length — длина строки результата
  • $delimiter — разделитель между словами


  function sefTranslit($string, $length = 128, $delimiter = '-') {
        $tr = array(
            "А" => "a", "Б" => "b", "В" => "v", "Г" => "g", "Д" => "d", "Е" => "e",
            "Ж" => "j", "З" => "z", "И" => "i", "Й" => "y", "К" => "k", "Л" => "l",
            "М" => "m", "Н" => "n", "О" => "o", "П" => "p", "Р" => "r", "С" => "s",
            "Т" => "t", "У" => "u", "Ф" => "f", "Х" => "h", "Ц" => "ts", "Ч" => "ch",
            "Ш" => "sh", "Щ" => "sch", "Ъ" => "", "Ы" => "yi", "Ь" => "", "Э" => "e",
            "Ю" => "yu", "Я" => "ya", "а" => "a", "б" => "b", "в" => "v", "г" => "g",
            "д" => "d", "е" => "e", "ж" => "j", "з" => "z", "и" => "i", "й" => "y",
            "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p",
            "р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h",
            "ц" => "ts", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "y", "ы" => "yi",
            "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya", " " => $delimiter, "." => "",
            "/" => $delimiter
        );
        $res = strtr(trim($string), $tr);

        if (preg_match('/[^A-Za-z0-9_\-]/', $res)) {
            $res = preg_replace('/[^A-Za-z0-9_\-]/', '', $res);
            $res = preg_replace("/[$delimiter]{2,}/", '', $res);
        }

        return urlencode(substr(strtolower($res), 0, $length));
    }

Рекурсивный поиск значения в массиве PHP

Рекурсивный поиск значения в массиве задача редкая, но иногда нужная.

Чуть нижу я выкладываю функцию, которая реализовывает задачу рекурсивного поиска значения в многомерных массивах.

Пусть она не сильно эстетична, зато «надёжна и практична ©».

function in_array_recursive($search, $array, $strict = false) {
	$result = false;
	if (in_array($search, $array)) {
		return true;
	}//if
	foreach ($array as $value) {
		if (is_array($value)) {
			$result = in_array_recursive($search, $value);
			if ($result) {
				return TRUE;
			}//if
		} else {
			return ($strict) ? ($search === $value) : ($search == $value);
		}//if
	}//foreach
	return $result;
}

Обрезка до конца предложения с использованием регулярных выражений PHP

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

Обновлённый вариант — обрезка доконца предложения с использованием регулярных выражений.

Предположим, что предложение у нас может заканчивается на "." "?" "!". В таком случае регулярное выражение будет такое — /.+?[?!.]/

Если результата нет, то возвращаем исходную строку.

function trim_to_dot($string) {
	$pattern = '/.+?[?!.]/';
	$result = array();
	if (preg_match($pattern, $string, $result) && !empty($result[0])){
		return $result[0];
	}else{
		return $string;
	}
}

Создание схемы расположения для модуля в OpenCart

Допустим, мы установили новый модуль, например, пусть это будет модуль быстрой регистрации и заказа SimplePay и у нас появилась новая страница с адресом /index.php?route=account/simpleregister, и мы хотим на неё создать особенно расположение модулей. Но, у нас нет её в списке. Что же делать?

Всё очень просто, нужно создать эту страницу в списке дизайнов, используя её путь обращения к контроллеру.

Теперь по порядку:
1. Копируем в буфер обмена путь к контроллеру — account/simpleregister.
2. Идём в меню Система — Дизайн — Схемы
Создание схемы расположения для модуля в OpenCart

Читать дальше

Удаление последнего символа PHP

Очень коротко сохраню (а то старею. стал забывать синтаксис)))) как адалить последний символ текстовой строки на PHP.

Вариант 1 — удаление любого последнего символа в строке (ANSI)
$string = substr($string, 0, -1);

Вариант 2 — удаление последнего символа с очисткой от пробелов и переносов строки
$string = trim(substr($string, 0, -1));

Вариант 3 — удаление любого последнего символа в строке (UTF-8)
$string = mb_substr($string, 0, -1, "UTF-8");

Вот и всё)

Универсальный PHP скрипт для кеширования страниц

Немного истории
Это очень специфический скрипт, так как многие современные решения уже имеют данный функционал. Но, разбирая старые модули и найдя его, я не мог не написать)
Основная сфера его применения, PHP скрипты, в которых содержится одновременно элементы модели MVC, а именно формирование данных, их обмен с БД и соответственно подготовка HTML вывода.
Как уже писал, сейчас это большая редкость, но иногда попадаются задачи доработки и оптимизации старых скриптов. И на практике этот модуль кеширования уже использовался мной не один раз. При этом я не анализирую его и не дорабатываю) А просто использую как есть)


Читать дальше

Выбор хостинга в Украине

Здравствуйте уважаемые читатели! Долгое время я откладывал эту статью, не был уверен, что она может кому пригодиться в хозяйстве. Но всё же решил написать!

Буду рассматривать 3 хостинг-провайдера с которыми мне пришлось работать последние несколько лет. Хотя, даже 4 провайдера, но более подробно опишу 3 из них, так как пользовался не одним пакетом услуг. Итак, пришло время открыть карты:
  • Хостинг «Украина» — на мой взгляд, один из самых надёжных и удобных провайдеров. Специализируется на Хостинге, VPS и аренде серверов. Имеет собственную и очень удобную панель управления, а так же систему скидок для постоянных клиентов.
  • MiroHost — провайдер с долгой историей и положительными отзывами. Специализируется на Хостинге, облачном VPS и аренде серверов.
  • HostPro — крупнейший облачный провайдер. На рынке услуг с 2001 года. Специализация: хостинг, VPS, аренда серверов, CDN хранилища по всему миру.
  • HvOSTING — не дорогой и достаточно стабильный украинский хостинг провайдер. Из отличия могу выделить хорошие скидки на доменные имена при условии работающего пакета хостинга.

Скажу сразу, что MiroHost — это надёжный и дорогой провайдер, где стоимость услуг складывается опираясь на имя, что не всегда оправдывает вложенные в него средства.
Надёжность? Да — он надёжен!

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

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


Читать дальше

Opencart ( Wordpress ) и баг с возвратом на предыдущую страницу в галерее PrettyPhoto

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

Я столкнулся с этой проблемой на сайтах, которые базировались на WordPress и на OpenCart, но после непродолжительных поисках понял, что проблема возникает на MaxyStore, что позволило при поиске решения абстрагироваться от конкретной системы управления(CMS), и обратить внимание на сам плагин PrettyPhoto.

Думаю, любой разработчик замечал, что при использования плагина PrettyPhoto в адресной строке к url сайта добавляется что-то типа: #prettyPhoto[25c784814d1463629681469d839f605d]. Вот в этой добавочной информации к url сайта и кроется весь корень наших проблем, следовательно, для решения задачи нам нужно убрать из адресной строки лишнюю информацию от PrettyPhoto. Спасибо разработчикам они об этом позаботились, отключается вся эта абракадабра очень просто, нужно просто присвоить параметру deeplinking значение false. Ниже привожу пример:
$("a[rel^='prettyPhoto']").prettyPhoto({deeplinking: false});
  • +1
  • 10 сентября 2013, 12:02
  • Maugli

Знаки вопросов (?) в письмах средствами PHP. Что делать?

При доведении до ума одного проекта, в ядре которого лежит OpenCartbigart.com.ua, столкнулся с проблемкой. Как выяснилось, при отправке писем клиенту, некоторые строчки разрываются и в разрыв вставляется знак вопроса (?).

Долго ломал себе голову, пока не посмотрел исходник письма. Письма генерируются в кодировке UTF-8. в формате HTML. Так вот, оказалось, что после достижения определённой длинны строки в теле письма, она попросту переносилась на новую, создавая при этом UTF-8 разрыв. Естественно ссылки и изображения «бьются».

Как вылечить?
Очень просто! Нужно вставлять в строки перевод каретки (\n). Это, конечно, должен знать каждый «школьник», но тем не менее)

Пример:
$html = '<a href="#link">Link text</a>' . "\n";