ФорумПрограммированиеPHP для идиотов → Осваиваю регулярки

Осваиваю регулярки

  • FjuZ

    Сообщения: 64 Репутация: N Группа: Кто попало

    Spritz 5 марта 2010 г. 21:17, спустя 1 минуту 6 секунд

    SpartakuS,
    <?php
    $url = "http://yandex.ru/";
    $content="Я пришел на пыху чтоб изучать пхп";
    preg_match_all ("#^Я#", $content, $conteent);
    print_r($conteent);
    exit;
    ?>

    так работает
    <?php
    $url = "http://yandex.ru/";
    $content="Я пришел на пыху чтоб изучать пхп";
    preg_match_all ("#^п#", $content, $conteent);
    print_r($conteent);
    exit;
    ?>

    adw0rd, в твоем варианте выдает
    Warning: preg_match_all() [function.preg-match-all]: Compilation failed: invalid UTF-8 string at offset 1 in X:\home\localhost\www\test.php on line 4
    Спустя 26 сек.
    второй вариант не работает
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 5 марта 2010 г. 21:24, спустя 6 минут 22 секунды

    почему вопрошатели так любят слово "проблема"? очередной угрюмый программер растёт.

    паренек, тебе сказали какой паттерн подставить. и где он? что за новый вариант проблемы? ты кодировку своего файла проверил — случайно не 1251? и убери нахуй закрывающий тег ?> не привыкай к плохому
    ιιlllιlllι унц-унц
  • FjuZ

    Сообщения: 64 Репутация: N Группа: Кто попало

    Spritz 5 марта 2010 г. 21:23, спустя 23 часа 59 минут 2 секунды

    artoodetoo, Warning: preg_match_all() [function.preg-match-all]: Compilation failed: invalid UTF-8 string at offset 1 in X:\home\localhost\www\test.php on line 4
    вот в чем проблема
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 5 марта 2010 г. 21:30, спустя 6 минут 52 секунды

    FjuZ,
    а теперь подумай почеу первый вариант работает, а второй нет? И еще обрати внимние на свой принтр.
    artoodetoo, объясни дураку, что плохого в закрывающм теге?
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 5 марта 2010 г. 21:35, спустя 5 минут 28 секунд

    удали строки 2, 6, 7, проверь кодировку файла, если utf-8 — сделай как адворд сказал, если нет — примени явно локаль. если не знаешь что такое локаль — узнай
    Спустя 185 сек.
    в этом примере закрывающий тег просто НИЧЕГО не значит, значит НЕ НУЖЕН, а в перспективе он опасен тем, что будет выводиться неуловимый текст (пустая строка) и неебические проблемы с "header already sent".

    закрывающий тег нужен только перед html
    http://framework.zend.com/manual/ru/coding-standard.php-file-formatting.html
    ιιlllιlllι унц-унц
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 5 марта 2010 г. 22:01, спустя 25 минут 43 секунды


    закрывающий тег нужен только перед html
    http://framework.zend.com/manual/ru/coding-standard.php-file-formatting.html
    Поскольку я всегда все делаю через шаблонизатор мне пофиг на все пробелы, как в начале так и в конце.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 5 марта 2010 г. 22:10, спустя 9 минут 9 секунд

    AlexB, мы ничего не знаем про ТС и его шаблонизаторы. пробелы и переводы строки за пределами кода — это неучтеный вывод текста. поэтому нехуй


    <?php
    // кодировка этого файла UTF-8 !

    $content='Японамать пришел на пыху чтоб изучать пхп';
    header('Content-Type: text/html; charset=UTF-8');
    preg_match_all ('/^(Я[\p{L}\p{Nd}]*)/ui', $content, $match);
    print_r($match);

    найдет 'Японамать'
    http://habrahabr.ru/blogs/php/45910/
    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 5 марта 2010 г. 22:31, спустя 20 минут 54 секунды

    тс я вам дал ссылку, где вы можете проверить мое регулярное выражение. И оно не работает только у вас, гуглите ошибку и решайте проблему
    Спустя 21 сек.
    какая у вас версия php кстати?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • FjuZ

    Сообщения: 64 Репутация: N Группа: Кто попало

    Spritz 6 марта 2010 г. 10:59, спустя 12 часов 27 минут 46 секунд

    adw0rd, 5.2.4
    окей, буду разбираться
  • FjuZ

    Сообщения: 64 Репутация: N Группа: Кто попало

    Spritz 6 марта 2010 г. 11:11, спустя 11 минут 57 секунд

    ещё небольшой вопрос. я парсю например с сайта http://gameslife.ru/cheats/index.html чит коды. когда парсю по названиям(например Чит-коды к игре Airfix Dogfighter), получаю только названия. как сделать так, чтобы в один элемент массива сохранялось название, а в другой-ссылка?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 6 марта 2010 г. 13:44, спустя 2 часа 33 минуты 29 секунд

    FjuZ, (название)(ссылка)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 6 марта 2010 г. 14:05, спустя 20 минут 26 секунд


    <a href="(.*?)">
    <div class="r_panel_box_subline"></div>
    <img src="http://gameslife.ru/img/ico2.gif" width="9" height="9">(.*?)
    </a>
  • FjuZ

    Сообщения: 64 Репутация: N Группа: Кто попало

    Spritz 6 марта 2010 г. 14:22, спустя 17 минут 21 секунду

    Troy, спасибо, помогло!
  • FjuZ

    Сообщения: 64 Репутация: N Группа: Кто попало

    Spritz 6 марта 2010 г. 23:37, спустя 9 часов 14 минут 50 секунд

    ещё вопрос. нужно спарсить со страницы http://gameslife.ru/cheats/index.html текст "Страницы: 1 2 3" и т.д.
    preg_match_all('#<div class=\"pages_n\">(.*)</div>#', $text, $matches, PREG_PATTERN_ORDER);
    эта регулярка возвращает пустой массив.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 6 марта 2010 г. 23:46, спустя 9 минут 42 секунды

    Тебе нужен модификатор, который включает перенос строки в список любых символов. Смотреть лень, а на память не помню. s вроде. Почитай статью на пыхе.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!