PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (30): В начало « ... 22 23 24 25 26 27 28 29 [30]

> Найдено сообщений: 446
GoDr Отправлено: 15 Января, 2015 - 13:33:25 • Тема: Как получить данные с саита? • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 144
Zuldek, ну или как-то так Радость
GoDr Отправлено: 15 Января, 2015 - 13:29:09 • Тема: удалить подстроки • Форум: Регулярные выражения

Ответов: 5
Просмотров: 434
LIME пишет:
А зачем слеш экранировать?
Слеш относится к специальным символам, которые нужно экранировать

Специальные символы: [ ] \ / ^ $ . | ? * + ( ) { }
GoDr Отправлено: 15 Января, 2015 - 13:20:24 • Тема: Простой код что бы умножить два числа • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 133
LIME пишет:
Ф-ция лучше
Можно обратно быстро вернуть
быстро на гульдены перейти
и не шариться больше по шаблонам
Ну это уже как фантазии хватит.. Можно и такое сделать... Сам класс
PHP:
скопировать код в буфер обмена
  1. class LibPrice
  2. {
  3.     private static $valuta = array(
  4.         'USD' => '1',
  5.         'EUR' => '1',
  6.         'JPY' => '1'
  7.     );
  8.  
  9.     private static $_resource;
  10.  
  11.     private $list = array();
  12.  
  13.     public static function getNewPrice($price, $valuta = 'USD')
  14.     {
  15.         // получаем курсы валют
  16.         if (!is_object(self::$_resource)) {
  17.             $class_name = __CLASS__;
  18.             self::$_resource = new $class_name;
  19.  
  20.             $cbr = self::$_resource;
  21.             if ($cbr->load()) {
  22.                 foreach(self::$valuta as $key => $value){
  23.                     self::$valuta[$key] = $cbr->get($key);
  24.                 }
  25.             }
  26.         }
  27.  
  28.         if(array_key_exists($valuta, self::$valuta)){
  29.             $price = $price / self::$valuta[$valuta];
  30.         }
  31.  
  32.         return $price;
  33.     }
  34.  
  35.     public function load()
  36.     {
  37.         $xml = new DOMDocument();
  38.         $url = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d.m.Y');
  39.  
  40.         if (@$xml->load($url)) {
  41.             $this->list = array();
  42.  
  43.             $root = $xml->documentElement;
  44.             $items = $root->getElementsByTagName('Valute');
  45.  
  46.             foreach ($items as $item) {
  47.                 $code = $item->getElementsByTagName('CharCode')->item(0)->nodeValue;
  48.                 $curs = $item->getElementsByTagName('Value')->item(0)->nodeValue;
  49.                 $this->list[$code] = floatval(str_replace(',', '.', $curs));
  50.             }
  51.  
  52.             return true;
  53.         } else
  54.             return false;
  55.     }
  56.  
  57.     public function get($cur)
  58.     {
  59.         return isset($this->list[$cur]) ? $this->list[$cur] : 0;
  60.     }
  61. }

Вызвать можно так (переводим 1555 рублей в доллары по сегодняшнему курсу)
PHP:
скопировать код в буфер обмена
  1. echo LibPrice::getNewPrice(1555, 'USD');


PS
ничего комментировать не стал в коде, сделал на скорую руку.. Но прикольно получилось, сам не ожидал Радость
GoDr Отправлено: 15 Января, 2015 - 12:42:50 • Тема: LibDateTime() • Форум: Пользовательские функции

Ответов: 5
Просмотров: 3675
часто приходится использовать операции с датами, вот и написал для своих проектов небольшую библиотеку. Простая в обращении, самые необходимые методы. Конечно там только самое необходимое, но всегда можно расширить Хорошо

Требование простое: PHP >= 5.2.0 (но лучше >=5.3)

Методы:
    Возвращает дату в формате [12 декабря 2014 года]
    Возвращает разницу дат
    Прибавляет интервал к дате
    Отнимает интервал от дате
    Преобразует дату в нужный формат
    Возвращает выпадающий список дней месяца
    Возвращает выпадающий список месяцев
    Возвращает выпадающий список годов


PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Класс для работы с Датой и Временем
  3.  * @package   LibDateTime
  4.  * @version   1.1
  5.  * @author    Gold Dragon <illusive@bk.ru>
  6.  * @link      http://gd.lotos-cms.ru
  7.  * @copyright Авторские права (C) 2000-2015, Gold Dragon
  8.  * @date      01.01.2015
  9.  * @see       http://wiki.lotos-cms.ru/index.php/LibDateTime
  10.  * @license   MIT License: http://opensource.org/licenses/MIT
  11.  */
  12. class LibDateTime
  13. {
  14.     /** @var array : название месяцев (именительный падеж) */
  15.     private static $MONTH_NAME_I = array(
  16.         "---------",
  17.         "Январь",
  18.         "Февраль",
  19.         "Март",
  20.         "Апрель",
  21.         "Май",
  22.         "Июнь",
  23.         "Июль",
  24.         "Август",
  25.         "Сентябрь",
  26.         "Октябрь",
  27.         "Ноябрь",
  28.         "Декабрь");
  29.  
  30.     /** @var array : название месяцев (родительный падеж) */
  31.     private static $MONTH_NAME_R = array(
  32.         "---------",
  33.         "января",
  34.         "февраля",
  35.         "марта",
  36.         "апреля",
  37.         "мая",
  38.         "июня",
  39.         "июля",
  40.         "августа",
  41.         "сентября",
  42.         "октября",
  43.         "ноября",
  44.         "декабря");
  45.  
  46.     /** @var array : суффикс для года */
  47.     private static $SUFFIX = array("", "г.", "года");
  48.  
  49.     /**
  50.      * Возвращает дату в формате [12 декабря 2014 года]
  51.      *
  52.      * @param datetime|null $date   : дата в любом форматие
  53.      * @param int           $suffix : выводить ли слово после даты
  54.      *                              0 - нет (по умолчанию)
  55.      *                              1 - короткая форма
  56.      *                              2 - длинная форма
  57.      *
  58.      * @return string : дата
  59.      *
  60.      * @example:
  61.      *         echo LibDateTime::getDateName('01.01.2015');
  62.      *         echo LibDateTime::getDateName('01.01.2015', 2);
  63.      */
  64.     public static function getDateName($date = null, $suffix = 0)
  65.     {
  66.         if (empty($date)) {
  67.             $date = date('d.m.Y');
  68.         }
  69.  
  70.         $suffix = intval($suffix);
  71.  
  72.         if ($suffix < 0 or $suffix > 2) {
  73.             $suffix = 0;
  74.         }
  75.  
  76.         $result[] = self::formatDate($date, 'd');
  77.         $result[] = self::$MONTH_NAME_R[self::formatDate($date, 'n')];
  78.         $result[] = self::formatDate($date, 'Y');
  79.         $result[] = self::$SUFFIX[$suffix];
  80.  
  81.         return trim(implode(' ', $result));
  82.     }
  83.  
  84.     /**
  85.      * Возвращает разницу дат
  86.      *
  87.      * @param datetime      $date1  : уменьшаемое
  88.      * @param datetime|null $date2  : вычитаемое (если не задана то текущая)
  89.      * @param string        $format : возвращаемый формат (каждому символу должен предшествовать знак процента [%])
  90.      *                              Y : Годы, число, минимум две цифры с ведущими нулями
  91.      *                              y : Годы, число
  92.      *                              M : Месяцы, число, минимум две цифры с ведущими нулями
  93.      *                              m : Месяцы, число
  94.      *                              D : Дни, число, минимум две цифры с ведущими нулями
  95.      *                              d : Дни, число
  96.      *                              a : Общее количество дней в качестве результата выполнения DateTime::diff(), либо unknown
  97.      *                              H : Часы, число, минимум две цифры с ведущими нулями
  98.      *                              h : Часы, число
  99.      *                              I : Минуты, число, минимум две цифры с ведущими нулями
  100.      *                              i : Минуты, число
  101.      *                              S : Секунды, число, минимум две цифры с ведущими нулями
  102.      *                              s : Секунды, число
  103.      *                              R : Знак "-" при отрицательном числе, "+" при положительном
  104.      *                              r : Знак "-" при отрицательном числе, пусто при положительном
  105.      *
  106.      * @return int : разность (в днях)
  107.      *
  108.      * @example:
  109.      *         echo LibDateTime::getDateDiff('01.01.2015');
  110.      *         echo LibDateTime::getDateDiff('11.11.2020', '01.01.2015');
  111.      *         echo LibDateTime::getDateDiff('11.11.2020', '01.01.2015', '%r%a');
  112.      *
  113.      * @since  21.08.2015 Gold Dragon
  114.      */
  115.     public static function getDateDiff($date1, $date2 = null, $format = '%r%a')
  116.     {
  117.         if (is_null($date2)) {
  118.             $date2 = date('Y-m-d');
  119.         }
  120.         $d2 = new DateTime($date1);
  121.         $d1 = new DateTime($date2);
  122.  
  123.         $result = (int)$d1->diff($d2)->format($format);
  124.  
  125.         return $result;
  126.     }
  127.  
  128.     /**
  129.      * Прибавляет интервал к дате
  130.      *
  131.      * @param string $date     - дата
  132.      * @param string $interval - интервал в формате ISO 8601, например, P5D (5 дней) или P3Y (3 года)
  133.      *                         Y - Количество лет
  134.      *                         M - Количество месяцев
  135.      *                         D - Количество дней
  136.      * @param string $format   - возвращаемый формат (по умолчанию  d.m.Y)
  137.      *
  138.      * @return string - дата в формате $format
  139.      *
  140.      * @example:
  141.      *         echo LibDateTime::getDateAdd('01.01.2015', 'P5D');
  142.      *         echo LibDateTime::getDateAdd('01.01.2015', 'P5D', 'Y-m-d');
  143.      */
  144.     public static function getDateAdd($date, $interval, $format = 'd.m.Y')
  145.     {
  146.         $d1 = new DateTime($date);
  147.         $result = $d1->add(new DateInterval($interval))->format($format);
  148.         return $result;
  149.     }
  150.  
  151.     /**
  152.      * Отнимает интервал от дате
  153.      *
  154.      * @param string $date     - дата
  155.      * @param string $interval - интервал в формате ISO 8601, например, P5D (5 дней) или P3Y (3 года)
  156.      *                         Y - Количество лет
  157.      *                         M - Количество месяцев
  158.      *                         D - Количество дней
  159.      * @param string $format   - возвращаемый формат (по умолчанию  d.m.Y)
  160.      *
  161.      * @return string - дата в формате $format
  162.      *
  163.      * @example:
  164.      *         echo LibDateTime::getDateSub('01.01.2015', 'P5D');
  165.      *         echo LibDateTime::getDateSub('01.01.2015', 'P5D', 'Y-m-d');
  166.      */
  167.     public static function getDateSub($date, $interval, $format = 'd.m.Y')
  168.     {
  169.         $d1 = new DateTime($date);
  170.         $result = $d1->sub(new DateInterval($interval))->format($format);
  171.         return $result;
  172.     }
  173.  
  174.     /**
  175.      * Преобразует дату в нужный формат
  176.      *
  177.      * @param string $date   - дата (если не задана то текущая)
  178.      * @param string $format - возвращаемый формат (по умолчанию  d.m.Y)
  179.      *
  180.      * @return string
  181.      *
  182.      * @example:
  183.      *         echo LibDateTime::formatDate();
  184.      *         echo LibDateTime::formatDate('', 'Y-m-d');
  185.      *         echo LibDateTime::formatDate('01.01.2015', 'Y-m-d');
  186.      */
  187.     public static function formatDate($date = null, $format = 'd.m.Y')
  188.     {
  189.         if (empty($date)) {
  190.             $date = date('d.m.Y');
  191.         }
  192.  
  193.         $date_obj = new DateTime($date);
  194.         return $date_obj->format($format);
  195.     }
  196.  
  197.     /**
  198.      * Возвращает выпадающий список дней месяца
  199.      *
  200.      * @param int      $month       : номер месяца
  201.      * @param int      $year        : год
  202.      * @param string   $tag_name    : имя тега
  203.      * @param null|int $selected    : значение для выбора
  204.      * @param string   $tag_attribs : дополнительные атрибуты тега
  205.      * @param int      $calendar    : Календарь, используемый для вычисления
  206.      *                              0 or CAL_GREGORIAN - Грегорианский календарь (по умолчанию)
  207.      *                              1 or CAL_JULIAN - Юлианский календарь
  208.      *                              2 or CAL_JEWISH - Еврейский календарь
  209.      *                              3 or CAL_FRENCH - Календарь со дня Французской революции
  210.      *
  211.      * @return string : HTML-код
  212.      *
  213.      * @example:
  214.      *         echo LibDateTime::selectDays(2, 2015, 'qqq');
  215.      *         echo LibDateTime::selectDays(2, 2015, 'qqq', 12);
  216.      *         echo LibDateTime::selectDays(2, 2015, 'qqq', '', ' id="qq1" style="color:#900"');
  217.      */
  218.     public static function selectDays($month, $year, $tag_name, $selected = null, $tag_attribs = '', $calendar = CAL_GREGORIAN)
  219.     {
  220.         $result = '';
  221.         $_day = cal_days_in_month($calendar, $month, $year);
  222.  
  223.         $result .= '<select name="' . $tag_name . ' ' . $tag_attribs . '">';
  224.  
  225.         for ($i = 1; $i <= $_day; $i++) {
  226.             $extra = ($i == $selected) ? ' selected="selected"' : '';
  227.             $result .= '<option value="' . $i . '" ' . $extra . '>' . $i . '</option>';
  228.         }
  229.  
  230.         $result .= '</select>';
  231.  
  232.         return $result;
  233.     }
  234.  
  235.     /**
  236.      * Возвращает выпадающий список месяцев
  237.      *
  238.      * @param string   $tag_name    : имя тега
  239.      * @param null|int $selected    : значение для выбора
  240.      * @param string   $tag_attribs : дополнительные атрибуты тега
  241.      * @param bool     $padez       : падеж
  242.      *                              true : именительны (по умолчанию)
  243.      *                              false : родительный
  244.      *
  245.      * @return string : HTML-код
  246.      *
  247.      * @example:
  248.      *         echo LibDateTime::selectMonth('qqq');
  249.      *         echo LibDateTime::selectMonth('qqq', 5);
  250.      *         echo LibDateTime::selectMonth('qqq', '', ' id="qq1" style="color:#900"', false);
  251.      */
  252.     public static function selectMonth($tag_name, $selected = null, $tag_attribs = '', $padez = true)
  253.     {
  254.         $result = '';
  255.         $month = ($padez) ? self::$MONTH_NAME_I : self::$MONTH_NAME_R;
  256.  
  257.         $result .= '<select name="' . $tag_name . ' ' . $tag_attribs . '">';
  258.  
  259.         for ($i = 1; $i < 13; $i++) {
  260.             $extra = ($i == $selected) ? ' selected="selected"' : '';
  261.             $result .= '<option value="' . $i . '" ' . $extra . '>' . $month[$i] . '</option>';
  262.         }
  263.  
  264.         $result .= '</select>';
  265.  
  266.         return $result;
  267.     }
  268.  
  269.     /**
  270.      * Возвращает выпадающий список годов
  271.      *
  272.      * @param int $year1 : начальный год
  273.      * @param string   $tag_name    : имя тега
  274.      * @param null|int $selected    : значение для выбора
  275.      * @param string   $tag_attribs : дополнительные атрибуты тега
  276.      * @param null|int $year2 : конечный год (если не задан, то текущий)
  277.      *
  278.      * @return string : HTML-код
  279.      *
  280.      * @example:
  281.      *         echo LibDateTime::selectYear(2000, 'qqq');
  282.      *         echo LibDateTime::selectYear(2000, 'qqq', 2013);
  283.      *         echo LibDateTime::selectYear(2000, 'qqq', '', ' id="qq1" style="color:#900"', 2020);
  284.      */
  285.     public static function selectYear($year1, $tag_name, $selected = null, $tag_attribs = '', $year2 = null)
  286.     {
  287.         $result = '';
  288.         if (empty($year2)) {
  289.             $year2 = date('Y');
  290.         }
  291.  
  292.         $result .= '<select name="' . $tag_name . ' ' . $tag_attribs . '">';
  293.  
  294.         for ($i = $year1; $i <= $year2; $i++) {
  295.             $extra = ($i == $selected) ? ' selected="selected"' : '';
  296.             $result .= '<option value="' . $i . '" ' . $extra . '>' . $i . '</option>';
  297.         }
  298.  
  299.         $result .= '</select>';
  300.  
  301.         return $result;
  302.  
  303.     }
  304. }


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

Если будут вопросы или предложения, буду только рад услышать.
GoDr Отправлено: 15 Января, 2015 - 11:00:37 • Тема: удалить подстроки • Форум: Регулярные выражения

Ответов: 5
Просмотров: 434
Цитата:
Как сделать так, чтобы пропали только цитаты, а обычный текст остался?

Что-то как-то сложно.. Если просто нужно удалить цитаты из текста, то не проще так?
PHP:
скопировать код в буфер обмена
  1. $a = '#<quote(.*?)>.*?<\/quote>#is';
  2. $b = 'test test бла бла
  3.    <quote="test" param1="123"> текст </quote>
  4.    тест текст
  5.    <quote="test" param1="123"> текст </quote>';
  6.  
  7. $c = preg_replace($a, '', $b);
  8.  
  9. echo $c;


А твой код вообще-то не удаляет цитаты.
GoDr Отправлено: 15 Января, 2015 - 10:45:26 • Тема: Регулярное выражение preg_match для таблицы • Форум: Регулярные выражения

Ответов: 3
Просмотров: 359
Например, так
PHP:
скопировать код в буфер обмена
  1. $a = '#<td.*?>\s*([\d\.]+)\s*\$\s*<\/td>#is';
  2. $b = '<td class="title" id="" width="15%">text</td>
  3.        <td width="15%"> 9.95 $</td>
  4.        <td width="15%"> 5.75 $</td>
  5.        <td class="title" id="" width="15%">text</td>';
  6.  
  7. preg_match_all($a, $b, $tmp);
  8. print_r($tmp[1]);
  9.  


Если нужно с $, то
PHP:
скопировать код в буфер обмена
  1. $a = '#<td.*?>\s*([\d\.]+\s*\$)\s*<\/td>#is';
GoDr Отправлено: 15 Января, 2015 - 10:25:40 • Тема: Простой код что бы умножить два числа • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 133
madest, данные от куда берёшь? Из html-страницы? Если ДА, всё "ручками" или через javascript.

А если Данные хранятся в базе данных и страницы формируются на сервере средствами PHP, то всё очень просто.

как вариант:
1. Создай файл, к примеру valuta.php
закинь туда код типа
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Курс доллара
  3. define('_KURS_DOL', 1400);

2. Подключи этот файлик к своему проекту

3. Ну и дальше, где у тебя непосредственно выводится цена, добавь что-то по типу

Поменялся курс, залезай в valuta.php и правь.

А ещё лучше сразу забирать курс валюты с какого-нибудь сайта, например, с того Центрабанка (http://www.cbr.ru/scripts/Root.asp?PrtId=SXML).
GoDr Отправлено: 15 Января, 2015 - 10:03:57 • Тема: Как получить данные с саита? • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 144
Zuldek, Не всё так просто.. Данные формируются через Javascript. И ещё просмотр результатов осуществляется через Ajax. Так что просто скопировав страницу, ничего не получишь.

А запрашивать в своём скрипте (не через клиента) сторонний скрипт... не думаю что должно получится. По крайней мере нормальный код такое бы запретил..
GoDr Отправлено: 15 Января, 2015 - 09:22:58 • Тема: Регулярные выражения • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 101
AnaSSStasia пишет:
Спасибо) уже, правда, сама разобралась, но будет для проверки))
Главное дать человеку пару дней подумать, и тогда он сам всё сделает Хорошо Что касается "проверки"... вариантов решения много и это не значит что у меня рациональнее Радость
GoDr Отправлено: 14 Января, 2015 - 21:44:53 • Тема: Регулярные выражения • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 101
И задание 2......


Имея полное имя файла (например, picture.jpg), получите его расширение (например, jpg)
PHP:
скопировать код в буфер обмена
  1. $a = "picture.jpg";
  2. preg_match("#\.(.*)$#", $a, $tmp);
  3. echo $tmp[1];


Имея полное имя файла, проверьте соответствует ли оно: а) архиву, б) аудиофайлу, в) видеофайлу, г) картинке

PHP:
скопировать код в буфер обмена
  1. $a = "picture.jpg";
  2. preg_match("#\.(.*)$#", $a, $tmp);
  3.  
  4. $b[0] = array('zip', 'rar', 'arj');
  5. $b[1] = array('mp3', 'wma', 'wav');
  6. $b[2] = array('mkv', 'mp4', 'avi');
  7. $b[3] = array('jpg', 'png', 'gif');
  8.  
  9. $c = array('Архив','Музыка','Фильм','Картинка');
  10.  
  11. foreach($b as $key => $value){
  12.     if(in_array($tmp[1], $value)){
  13.         echo 'Это ' . $c[$key];
  14.         break;
  15.     }
  16. }
  17.  

В произвольном HTML-коде найдите строку, заключенную в теги <title></title>
PHP:
скопировать код в буфер обмена
  1. $a = <<<EOF
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>Форумы портала PHP.SU :: Регулярные выражения</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  7. <meta http-equiv="Content-Language" content="ru">
  8. <meta http-equiv="Cache-Control" content="private">
  9. <meta name="description" content="Форумы портала PHP.SU, форум php-программистов">
  10. <meta http-equiv="description" content="Форумы портала PHP.SU, Форум PHP программистов">
  11. <meta name="Keywords" content="PHP, MySQL, JavaScript, форум, мануал, справочник, статьи, примеры">
  12. <meta http-equiv="Keywords" content="PHP, MySQL, JavaScript, форум, мануал, справочник, статьи, примеры">
  13. EOF;
  14.  
  15. preg_match("#<title>(.*)<\/title>#i", $a, $tmp);
  16. echo $tmp[1];


В произвольном HTML-коде найдите все ссылки в тегах <a> (атрибут href)
PHP:
скопировать код в буфер обмена
  1. $a = '<a href="link1.html">link1</a>asdas<a href="link2.html">link2</a>asdas<a href="link3.html">link3</a>asdas<a href="link4.html">link4</a>asdas';
  2. preg_match_all("#<a[^>]+href=(\"|\')([^ >]+)[^>]*(\"|\')>.*?</a>#i", $a, $tmp);
  3. print_r($tmp[2]);


В произвольном HTML-коде найдите все ссылки на картинки в тегах <img> (атрибут src)
PHP:
скопировать код в буфер обмена
  1. $a = '<img src="logo1.png">asdadasdasd<img src="logo2.png">asdadasdasd<img src="logo2.png">asdadasdasd';
  2. preg_match_all("#<img[^>]+src=(\"|\')([^ >]+)[^>]*(\"|\')>#i", $a, $tmp);
  3. print_r($tmp[2]);


В произвольном тексте найдите и подсветите с помощью тега <strong> заданную строку
PHP:
скопировать код в буфер обмена
  1. $a = 'строка строка строка текст строка строка строка строка ';
  2. $b = preg_replace("#(текст)#", '<strong>$1</strong>', $a);
  3. echo $b;


В произвольном тексте найдите определенный набор текстовых смайликов Улыбка, Подмигивание, Недовольство, огорчение на соответствующие им картинки <img src="smile.png" alt="Улыбка">, <img src="wink.png" alt="Подмигивание">, <img src="sad.png" alt="Недовольство, огорчение">
PHP:
скопировать код в буфер обмена
  1. $a   = 'строка :) строка ;) строка :( строка строка строка строка ';
  2. $b[] = array('smile' => ':)', 'img' => '<img src="smile.png" alt="Улыбка">');
  3. $b[] = array('smile' => ';)', 'img' => '<img src="wink.png" alt="Подмигивание">');
  4. $b[] = array('smile' => ':(', 'img' => '<img src="sad.png" alt="Недовольство, огорчение">');
  5.  
  6. foreach($b as $value){
  7.     $a = preg_replace("#\Q".$value['smile']."\E#", $value['img'], $a);
  8. }
  9. echo $a;


В заданной строке избавьтесь от случайных повторяющихся пробелов.
PHP:
скопировать код в буфер обмена
  1. $a = "oijioqw   wqop joqiw  ooiio o       qwiio qwo   l";
  2. $b = preg_replace("#\s{2,}#", " ", $a);
  3. echo $b;

(Добавление)
Ну где-то как-то так Улыбка
может где и опечатывался.. но вроде всё проверял... Хотя вариантов решения может быть сколько угодно
(Добавление)
Цитата:
А \w не покрывает часть допустимых символов, +, например.
Так я написал, самая простая Улыбка В данном случае задача не конкретизирована, в примере указано вообще на латинице ;)

Цитата:
В символьной маске символ | не имеет специального значения.
Малость тормознул Радость
(Добавление)
Вот второе задание уже ближе к реальности.. Хорошая тренировка на рациональные решения Улыбка
GoDr Отправлено: 14 Января, 2015 - 20:43:59 • Тема: Регулярные выражения • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 101
Целое число

СМ. is_numeric()

Набор из букв и цифр (латиница)


Набор из букв и цифр (латиница + кириллица)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #[\da-zA-Zа-яА-ЯёЁ]+#


Домен (google.com)

Проще использовать простое сравнение

Имя пользователя (с ограничением 3-25 символов, которыми могут быть буквы и цифры, первый символ обязательно буква)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^[a-zа-я-А-ЯёЁ]{1}[\da-zа-я-А-ЯёЁ]{2,24}$#


Пароль (строчные и прописные латинские буквы, цифры)


Пароль (строчные и прописные латинские буквы, цифры, спецсимволы, минимальная длина - 8 символов)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^[\da-zA-Zа-я-А-ЯёЁ!@#\$%\^&\*]{8,}$#


Дата в формате YYYY-MM-DD
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{4}-\d{2}-\d{2}$#

Регуляркой не получится просерить корректность даты. СМ.checkdate()
можно чуть усложнить
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{4}-[01]{1}[0-9]{1}-[0-3]{1}[0-9]{1}$#

ну или как то так
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{4}-(01|02|03|04|05|06|07|08|09|10|11|12)-[0-3]{1}[0-9]{1}$#


Дата в формате DD/MM/YYYY

CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{2}\/\d{2}\/\d{4}$#


Дата в формате DD.MM.YYYY
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^[\d]{2}\.[\d]{2}\.[\d]{4}$#


Время в формате HH:MM:SS
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{2}:\d{2}:\d{2}$#

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

Время в формате HH:MM


URL (http://yandex.ru/)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^http:\/\/yandex\.ru\/$#


E-mail (user@maildomain.com)
Вообще-то email в соответсвии со спецификацией может содержать практически любые символы, даже несколько "собак". Но если совсем просто, то можно так


IPv4 (94.137.192.81)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#


IPv6 (2001:0:9d38:6abd:c70:2d3c:a176:3398)
Не вникал в этот формат ещё, так что классическое выражение
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$#


Mac-адрес (ec:23:3d:1b:7a:e7)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^[\d|a-f]{2}\:[\d|a-f]{2}\:[\d|a-f]{2}\:[\d|a-f]{2}\:[\d|a-f]{2}\:[\d|a-f]{2}$#


Российский номер мобильного телефона (+79021234567)


Номер кредитной карты (4048 4323 9889 3301)
CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d{4}\s\d{4}\s\d{4}\s\d{4}\s*$#


ИНН (3808753981 или 380870115601)


Почтовый индекс (664000)


Цена в рублях (2546,10 руб.)

CODE (htmlphp):
скопировать код в буфер обмена
  1. #^\d+(,|\.)\d{2}\s*руб\.$#


Цена в долларах ($39.99)

(Добавление)
Хорошая тренировка для мозгов... Правда слишком простые задания в первом задании Радость Хотя бред сивой кобылы!!!!!! Не понимаю преподавателей которые задают изначально нерациональные (а порой даже глупые) решения

Страниц (30): В начало « ... 22 23 24 25 26 27 28 29 [30]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB