помогите сформировать регулярку

Тема в разделе "PHP", создана пользователем buket23, 29 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. buket23

    buket23

    Регистр.:
    3 окт 2008
    Сообщения:
    163
    Симпатии:
    10
    вот код сайта с которого нужно вытащить оба значения value

    PHP:
    <input type="hidden" id="mid" value="13150398" />
    <
    input type="hidden" id="faveHash" value="a767034841a318a691" />
    нужно сформировать регулярку
    PHP:
    $result curl("http://site.ru/","");
    preg_match("регулярка"$result$mid);
    preg_match("регулярка"$result$hash);
    я так понимаю чтото типа
    /<input type=\"hidden\" id=\"mid\" value=\"([0-9]+)\"/
     
  2. Kirillik

    Kirillik Создатель

    Регистр.:
    22 фев 2009
    Сообщения:
    32
    Симпатии:
    7
    PHP:
    preg_match('|<input type="hidden" id="mid" value="(\d{8})" />|Us'$result$matches);
    $mid $matches[1];
    preg_match('|<input type="hidden" id="faveHash" value="(\w{18})" />|Us'$result$matches); 
    $hash $matches[1];
     
  3. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    Код:
    if (preg_match('%<input type="hidden" id="mid" value=".+?" />%', $text, $tmp)) {
    	$text = $tmp[0];
    } else {
    	$text = "";
    }
    
    
    и
    Код:
    if (preg_match('%<input type="hidden" id="faveHash" value=".+?" />%', $text, $tmp)) {
    	$text = $tmp[0];
    } else {
    	$text = "";
    }
    
    
    соответственно
     
  4. buket23

    buket23

    Регистр.:
    3 окт 2008
    Сообщения:
    163
    Симпатии:
    10
    спасибо за ответы, я прогляделся не тот код выдернул:confused:
    вот код правильный
    PHP:
    <input type=\"hidden\" name=\"hash\" id=\"hash\" value=\"1259489405_15cadf948e1a47dbd5\" \/>\n
    все также надо выдернуть значение value
    пробовал так не получается
    PHP:
    preg_match('%<input type=\"hidden\" name=\"hash\" id=\"hash\" value=\".+?\" \/>%'$result$matches); 
    $hash $matches[1];
     
  5. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    ты уверен что обратные слэши нужны ?
    судя по \n нет )))
    Код:
    if (preg_match('/<input type="hidden" id="hash" value="(.+?)"/', $text, $tmp)) {
    	$text = $tmp[1];
    } else {
    	$text = "";
    }
    
    ну а если ck'ib все же нужны то
    Код:
    if (preg_match('/<input type="hidden\\\\" name=\\\\"hash\\\\" id=\\\\"hash\\\\" value=\\\\"(.+?)\\\\"/', $text, $tmp)) {
    	$text = $tmp[1];
    } else {
    	$text = "";
    }
    
     
  6. buket23

    buket23

    Регистр.:
    3 окт 2008
    Сообщения:
    163
    Симпатии:
    10
  7. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    просто странно что в type="hidden\" первые кавычки не экранированы )))

    если что - добавь в код выше еще раз \\\\
     
  8. Kirillik

    Kirillik Создатель

    Регистр.:
    22 фев 2009
    Сообщения:
    32
    Симпатии:
    7
    Вот рабочая регулярка:


    PHP:
    $ch curl_init();
    curl_setopt($chCURLOPT_URL'http://vkontakte.ru/friends_ajax.php?act=request_form&fid=2');
    curl_setopt($chCURLOPT_COOKIE'remixsid=bcae1ce898c28d189432c34984d1b9d9998691a6754d714f41e6a82e');
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $result curl_exec($ch);
    curl_close($ch);
    preg_match('|<input type=\\\"hidden\\\" name=\\\"hash\\\" id=\\\"hash\\\" value=\\\"(.+)\\\" \\\/>|Us'$result$matches); 
    $hash $matches[1];
     
    buket23 нравится это.
Статус темы:
Закрыта.