Автор: Тупой прогер

Отвал служб в Центосе на вдс

No Picture

Здар. Кароч задрал тут один папус, сто лет назад работал, теперь моз мне за бесплатно епет.
Практически постоянный отвал происходит какого либо процесса, то мускул ты фпс, то баш. кароч моз также епет че и он.
Начал смотреть все таки кароч правда жпа через dmesg.
Ну и думаю дай гляну че по свапу, а свапу то хера. Короче толе образ был такой на двске, толи бэть типо ктото ускорил это гавмно.
Кароче нам надда сделать, запилить файл подкачки, полите именно через dd. falloc может не сработать.

 

sudo dd if=/dev/zero of=/swapfile bs=8MiB count=1000
chmod 600 /swapfile

 

Потом подключайте это гавно.

mkswap /swapfile
swapon /swapfile
cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

 

И в топку.

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

Добавить дополнительный Едитор, редактор текста в WP

No Picture

Коротко и по делу, времени много нету писать три километра текста.

Вообщем бывает надо добавить доп едитор для записей и тп.

add_meta_box( 'compositionEditor', __( 'Product short description'), 'composition_editor', 'product', 'normal' );

function composition_editor()
{
  $settings = array(
    'textarea_name' => 'excerpt',
    'quicktags'     => array( 'buttons' => 'em,strong,link' ),
    'tinymce'       => array(
      'theme_advanced_buttons1' => 'bold,italic,strikethrough,separator,bullist,numlist,separator,blockquote,separator,justifyleft,justifycenter,justifyright,separator,link,unlink,separator,undo,redo,separator',
      'theme_advanced_buttons2' => '',
    ),
    'editor_css'    => '<style>#wp-excerpt-editor-container .wp-editor-area{height:175px; width:100%;}</style>',
  );

  wp_editor( htmlspecialchars_decode( $post->post_excerpt, ENT_QUOTES ), 'excerpt', apply_filters( 'woocommerce_product_short_description_editor_settings', $settings ) );
}

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

Шпаргалка RegExp (регулярные выражения)

No Picture

Справка по составлению регулярных выражений

[abc] Один из символов a, b, c . Любой символ (…) Группировка (группа)
[^abc] Любой символ кроме a, b, c \s Пробельный символ (в т.ч. табуляция) (a|b) a или b
[a-z] Любой символ из диапазона \S Любой не пробельный символ a? Одна a или пусто
[a-zА-Я] Любой символ из диапазонов \d Любая цифра a* Ноль и более раз a
^ Начало строки \D Не цифра a+ Один и более раз a
$ Конец строки \w Буква (буквы, цифры, подчеркивание) a{3} 3 раза a
\A Начало текста \W Не буква (специальные символы) a{3,} 3 и более раз a
\z Конец текста \b Граница слова (начало или конец) a{3,5} От 3 до 5 раз a
\n Символ новой строки в Unix \r\n Символ новой строки в Windows \t Символ табуляции
\pL Буква (в т.ч. русская) в кодировке utf-8, используется с модификатором u

Модификаторы

i Регистронезависимость. Например «/a/i» ищет и a, и A.
U Инвертирует «жадность» (по умолчанию жадный, т.е. пытается захватить как можно большую строку, подходящую по условию).
u Использование кодировки utf-8 (для поиска русского текста например).
m Многострочный поиск.
s Символ . (точка) соответствует и переводу строки.
x Игнорировать пробелы. В этом случае пробелы нужно экранировать обратным слэшем \.

Сохранение настроек файла php

No Picture

Чето пропустил кучу тем которых хотел вам попалить. Жаль вообщем..

Но есть одна адски интересная тема. Хотите хранить очень просто настройки в исполняемом файле php?

Адски классная вешь, но не то о чем вы подумал, подумали наверно о массивах и тп, Помните как мы это делали в древние времена?

А тут бывает, что было бы не плохо таскать настройки в исполняемом файле. Бывает даже что базу в лом юзать из за трех записей.

А давайте попалим тему

<?php
//{"auth_pass":"12332123123123123"}
//{"60":100}

А ну че нигеры, ну че нигеры понимаете о чем я толкую? Ну планктон точно не знает.

Да да адские прогеры , или вернее сказать адски старые прогеры видали такую тему)

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

Но для тех кто в танке держите набросок, с коленки, хотя только дам кусок, а то есть вурдалаки которые как свое возьмут…

class Config
{
  public $varible = false;

  public function __construct()
  {
        	if(is_file(__FILE__))
    {
      $fh	= fopen(__FILE__, 'r');
      $line1	= fgets($fh);
      $line2	= fgets($fh);

      fclose($fh);

      if(strpos($line1,'<?php') === 0 && strpos($line2,'//{"') === 0)
      {
        $config_string = trim(substr($line2, 2));

        if(strlen($config_string))
        {
          $this->varible = json_decode($config_string);
        }
      }
    }	
  }

Ну че круто да? А вот теперь сами думайте как сохранить, это в файле бугагагагаг….

Да не хотите думать скинте мне доЛлАры, я вам расскажу.

Nginx: закрыть сайт паролем

No Picture

С вами снова Тупой прогер. Появилась необходимость по закрывать сайтики на джинсах паролями.
Ну туда сюда вообщем надо.
Помните да как это было на Апаче?

Вообщем Апачи не юзаем все знают, что тупой прогер юзает только джинсы.
Так вот следовательно у нас не стоит htpasswd которая идет в пакете с httpd.
Но у нас по любому стоит openssl не так ли?
Вообще действия такие, создаем файл паролей. Кинте его куда хотите. Допустим пускай валяется в /etc/nginx

echo -n 'admin:' >> /etc/nginx/.htpasswd
openssl passwd -apr1 >> /etc/nginx/.htpasswd

Далее сделаем хитро зачем нам по всем конфигам таскать с собой барахло.
Создадим файл /etc/nginx/passwd.conf:

auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;

И его уже подключаем в конфигах:

location / { 
try_files $uri @main; 
include	/etc/nginx/passwd.conf;
}

Ну че выкусили дада юзайте.

service nginx reload - Для стариков
systemctl restart nginx.service - для новичков

Кто понял тот понял кто не понял тому не дано понять )

Bitrix: Заполнение товаров минимальной и максимальной ценой.

No Picture

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

Идете в админку и ищите там командную строку php,  в нее втыкаете такой код. Усе написано, проверено чики бамбонито.
Читать далее »

Wget Как скопировать все изображения с html + data-src

No Picture

Бывает надо слить какой то сайт, но wget сливает не все изображения. data-src например не возьмет.
Типо lazy load модная хрень.
Тогда нам надо получить список изображений, подогнать его и слить.

Первое получим список изображений из файлов *.html:

sed -n 's/.*data-src="\([^"]*\).*/\1/p' *.html

Второе если у нас все ссылки с доменом то все оке. Иначе модифицируем:

sed 's/^/https:\/\/сайт.ru\//'

Третье  и все вместе загружаем с сохранением директорий:

sed -n 's/.*data-src="\([^"]*\).*/\1/p' *.html | sed 's/^/https:\/\/сайт.ru\//' | xargs -P 5 wget -x {}
-x - сохраенения пути
-p - количество потоков

 

Получить название песни из потока

No Picture

Хотите знать как получить название песни в теории не будем вдаваться.
Просто приложим код.

<?php

/**
 * Please be aware. This gist requires at least PHP 5.4 to run correctly.
 * Otherwise consider downgrading the $opts array code to the classic "array" syntax.
 */
function getMp3StreamTitle($streamingUrl, $interval, $offset = 0, $headers = true)
{
    $needle = 'StreamTitle=';
    $ua = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36';

    $opts = [
            'http' => [
            'method' => 'GET',
            'header' => 'Icy-MetaData: 1',
            'user_agent' => $ua
        ]
    ];

    if (($headers = get_headers($streamingUrl))) {
        foreach ($headers as $h) {
            if (strpos(strtolower($h), 'icy-metaint') !== false && ($interval = explode(':', $h)[1])) {
                break;
            }
        }
    }

    $context = stream_context_create($opts);

    if ($stream = fopen($streamingUrl, 'r', false, $context)) {
        $buffer = stream_get_contents($stream, $interval, $offset);
        fclose($stream);

        if (strpos($buffer, $needle) !== false) {
            $title = explode($needle, $buffer)[1];
            return substr($title, 1, strpos($title, ';') - 2);
        } else {
            return getMp3StreamTitle($streamingUrl, $interval, $offset + $interval, false);
        }
    } else {
        throw new Exception("Unable to open stream [{$streamingUrl}]");
    }
}

var_dump(getMp3StreamTitle('http://str30.creacast.com/r101_thema6', 19200));

 

Обрезать текст Javascript «Показать еще»:

No Picture

Как обрезать текст есть куча способов.
Логика обрезания такова, что нужно определить размер блока, задать ему нужный размер какой мы хотим.
А в последствии вернуть на свои места. Если конечно денег платят можно и самому все сделать и воткнуть.
Но как помните у нас три копейки, по этому не стоит тратить свои нервы на это.
Читать далее »

WP + Woocommerce и шаблон без поддержки

No Picture

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