PHP.SU

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

Страниц (1): [1]

> Найдено сообщений: 1
SanyaG Отправлено: 03 Июня, 2015 - 12:14:33 • Тема: Ответы на вопросы из уроков по php • Форум: Уроки php

Ответов: 67
Просмотров: 4515
Ответы на вопросы по теме "Регулярные выражения"

Представляю Вам свой вариант решения задач по выше указанной теме.

1. У вас есть php-код. Строковые индексы массивов в нем не заключены в кавычки. Вам надо заключить их в кавычки. Но учтите, что индексами массивов в коде могут быть и переменные, и функции - они не должны оказаться в кавычках. Объявленные константы в расчет не берем.

ответ

CODE (htmlphp):
скопировать код в буфер обмена
  1. $a = 1;
  2. function fct(){
  3.     return 2;
  4. }
  5.  
  6. $arr = array(
  7.     a => 'алекс',
  8.     ba => 'баранов',
  9.     $a => 'переменная',
  10.     с => 'саша',
  11.     fct() => 'функция'
  12. );
  13.  
  14. $pattern = '/(?<!\${1})[\d|\w]+\s=>/';
  15. $replace = '\'\1\'';
  16.  
  17. preg_replace($pattern, $replace, $arr);
  18. echo var_dump($arr);


2. Дана строка. Проверьте, все ли символы в ней уникальны.

ответ

CODE (htmlphp):
скопировать код в буфер обмена
  1. $str = 'sd34gd32';
  2.  
  3. $char = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
  4. $match = array();
  5.  
  6. foreach($char as $item):
  7.     if(in_array($item, $match)) {
  8.         echo "This char is not unique => $item <br>";
  9.     } else {
  10.         $match[] = $item;
  11.     }
  12. endforeach;


3. Проверьте синтаксическую правильность строки, содержащей e-mail

ответ

^[a-zA-Z0-9-\.]+@[a-zA-Z0-9-]+\.[a-z]{2,3}$

4. Проверьте синтаксическую правильность даты. Формат даты 'dd-mm-yyyy'. День и месяц, меньший 10 может быть записан одной цифрой. Неплохо было бы проверить так же на то сколько в месяце дней. Високосность года учитывать не надо.

ответ

CODE (htmlphp):
скопировать код в буфер обмена
  1. date_default_timezone_set('UTC');
  2.  
  3. $filed_date = '01-010-2015';
  4. $count_date = date('t');
  5. $matches = array();
  6.  
  7. if(preg_match('/^([0-9]{1,2})-([0-9]{1,2})-[0-9]{4}$/', $filed_date , $matches) && $matches[1] <= $count_date && $matches[2] <= 12){
  8.    echo 'Date\'s format is valid';
  9. } else{
  10.     echo 'Date\'s format is not valid';
  11. }


5. Найдите все ссылки на странице.

ответ

CODE (htmlphp):
скопировать код в буфер обмена
  1. $html = "Текст <a href='page1.html'>ссылка</a> и снова <a hREF \n =\"page2.html\" title=''>ссылка</a> конец";
  2.  
  3. $href = array();
  4. preg_match_all("/[Aa]\s{1}[Hh][Rr][Ee][Ff][^=]*=['\"\s]*([^\"'>\s#]+)[^>]*>/", $html, $href);
  5.  
  6. echo var_dump($href);



По последнему заданию - пример нашел в нете, так что это не совсем
мое авторство.

Пишите коменты, указывайте на ошибки - буду рад их анализировать ;))

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB