Обрезка с конца строки до точки в PHP

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

Вот такая маленькая функция решила для меня эту задачу:

// $string - строка, которую нужно укоротить
function trim_to_dot($string) {
    $pos = strrpos($string, '.'); // поиск позиции точки с конца строки
    if (!$pos) {
        return $string; // если точка не найдена - возвращаем строку
    }
    return substr($string, 0, $pos + 1); // обрезаем строку используя количество 
                                         // символов до точки + 1 (сама точка, 
                                         // если она не нужна "+1" нужно убрать)
}// конец функции

Обрезка строки по словам php

PHP
Функция для обрезки строки по словам
Простая и полезная функция для обрезки строки по словам. Так получается красивее, чем обрезать по символам. Слова остаются целыми.

// $input_text - исходная строка
// $limit = 50 - количество слов по умолчанию
// $end_str - символ/строка завершения. Вставляется в конце обрезанной строки
function words_limit($input_text, $limit = 50, $end_str = '') {
    $input_text = strip_tags($input_text);
    $words = explode(' ', $input_text); // создаём из строки массив слов
    if ($limit < 1 || sizeof($words) <= $limit) { // если лимит указан не верно или количество слов меньше лимита, то возвращаем исходную строку
        return $input_text;
    }
    $words = array_slice($words, 0, $limit); // укорачиваем массив до нужной длины
    $out = implode(' ', $words);
    return $out.$end_str; //возвращаем строку + символ/строка завершения
}

P.S. Модифицированный вариант спасибо Maugli

Как узнать версию OpenCart?

Как узнать, какая у Вас версия скрипта OpenCart?
Подбирая шаблон для одного интернет-магазина на OpenCart задался вопросом — Как узнать версию OpenCart?
В административно разделе (админке) её нет. В футере — тоже нет.

Так где же она?

Всё как всегда просто)))
Версия находится в файле index.php, который расположен в корне сайта. Мой пример:
// Version
define('VERSION', '1.5.2.1');
:)

Регулярное выражение для поиска адреса первого изображения в статье

Как найти адрес первого изображения при помощи регулярных выражений?
Есть интересная задача.

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

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

Функция под катом...

Как получить все значения enum'а????

PHP
В принципе задача тривальна, есть база данных, в базе данных есть таблица, в таблице есть поле ENUM, требуется получить массив значений вышеуказанного поля (почти русская народная сказка получается).

Для решения задачи был использован фреймворк нашей разработки, поэтому вношу пояснения:
Функция a_select — возвращает ассоциативный массив, который является результатом запроса $query.

Ну и собственно решение:

function get_enum($table_name, $column_name){
    $query = "SHOW COLUMNS FROM `".$table_name."` LIKE '".$column_name."'";        
    $enum_array = $this->a_select($query);
    if(!empty($enum_array)){
        $enum_array = str_replace('enum(', '', $enum_array[$column_name]);
        $enum_array = str_replace(')', '', $enum_array);
        $enum_array = str_replace("'", '', $enum_array);
        $enum_array = explode(',', $enum_array);
            
        return $enum_array;
    }else{
        return false;
    }
}
  • +1
  • 22 августа 2012, 16:19
  • Maugli

Неверно работает функция date()

PHP
Так как PHP использует временные зоны, у Вас могут возникнуть проблемы при вызове функции date(). А именно часы в дате могут быть смещены. Для вывода времени согласно часовому поясу, нужно его указать.

Часовой пояс по умолчанию
Как задать часовой пояс по умолчанию?
Делается это при помощи встроенной в PHP функции date_default_timezone_set().

Вызовите её где то в начале скрипта. В качестве параметра функция date_default_timezone_set() принимает часовую зону. Список доступных зон можно посмотреть тут www.php.net/manual/ru/timezones.php

Пример вызова:
date_default_timezone_set('Europe/Kiev');

Проблемы с сетевой картой Intel PRO 1000 на Debian Linux

Приветствую Вас дорогие кучекопатели (или кучечитатели — как Вам будет угодно). Этим постом начинаю небольшой сборник статей, посвящённых последней настройкой сервера с ОС Debian Linux.

Задача была такая
  • Gateway Firewall
  • Сервер DHCP
  • Сервер приложений (PHP, MySQL и т.д.)
  • Сервер Ресторана (Windows XP и какой то софт, который не я настраивал)
  • Ещё одна ОС для возможности подключения из вне и управления всем вышеперечисленным
  • Разместить всё это на одном физическом сервере.

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

Обрыв сетевого соединения
Сервер имеет на борту три сетевые карты Intel Pro 1000. Одна из сетевых карт подключена в коммутатор 24 порта TP-LINK. Я не сильно им доверяю, но что получил в наследство — то и есть.

После некоторого времени работы, сетевой интерфейс, назовём его eth0, перестаёт пропускать через себя пакеты. Другими словами — зависает. После чего, в выводе команды ifconfig eth0, в поле errors: видим большое очень большое число.


Дальше-больше!

Отправка почты средствами PHP

PHP
Приветствую всех читателей!
Хочу немного написать про проблему, с которой я столкнулся при разработке одного проекта. Суть в том, что почта, отправляемая стандартной функцией PHP mail() никак не хотела отправляться в формате «content-type: text/html».

Если быть точнее, эта проблема возникла у меня на хостинге от компании HvOSTING.UA.
Был взят пример отправки письма с официальной документации PHP. Но, вместо получения примера с html кодом приходил plaintext, в котором были дополнительные заголовки.

Пример кода с сайта php.net

<?php
// несколько получателей
$to  = 'aidan@example.com' . ', '; // обратите внимание на запятую
$to .= 'wez@example.com';

// тема письма
$subject = 'Birthday Reminders for August';

// текст письма
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// Для отправки HTML-письма должен быть установлен заголовок Content-type
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Дополнительные заголовки
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Отправляем
mail($to, $subject, $message, $headers);
?>


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