Попытка использовать preg_match на извлеченной HTML-странице, но это сбивает меня с толку - PullRequest
0 голосов
/ 29 июня 2010

Я уже несколько часов пытаюсь выполнить приведенный ниже скрипт (в рамках большого приложения, над которым я работаю), и я просто не могу понять, в чем проблема, независимо от того, что я получаю "Примечание: Неопределенное смещение: 1" это означает, что возникли проблемы с помещением результата в массив из preg_match ... Я выполнил процесс, который был почти идентичен аналогичной странице ранее, и он работал нормально. Я был бы очень признателен за любой совет, так как я просто не знаю что делать на этом этапе, так как я уже потратил часы, пытаясь решить эту проблему, у меня нет тонны опыта регулярных выражений, но я использовал его достаточно много, и я просто не могу понять, что может помешать этому правильно.

 <blink>

    <?PHP

    $email_saved_page = '

    <meta name="viewport" content="width=device-width"/> 
    <title>Sign in to Hushmail Mobile</title>
    <style type="text/css">
    div#logo{padding:0.3em;}
    /* */
    body{font-family:Arial;font-size:0.8em;margin:0em;}
    h2{padding:0.3em;color:#fff;font-weight:bold;background-    color:#006699;font-       size:1.1em;margin:0em;padding-left:0.3em;}
    h2 a{color:#fff;text-decoration:none;padding:0.3em;padding-left:0em;width:100%;}
    /* */
    div.content{padding:0.4em;}
    div.menu{padding:0.3em;padding-left:0em;}
    /* */
    div.user{background-color: #D7E4F0;padding:0.5em;margin-bottom:0.5em;}
    /* */
    div.noticeContainer{padding-top:0.1em;}
    div.success{background-color:#54b067;}
    div.error{background-color:#aa4444;}
    div.info{background-color:#ff9900;}
    div.notice{padding:0.5em;color:#fff;font-weight:bold;}
    div.notice a{color:#fff;text-decoration:none;}
    /* */
    div.search_results{margin-bottom:1em;}
    div.search_results h4{margin-bottom:0em;}
    /* */
   div.listItem{border-bottom:dotted 1px #ccc;padding:0.5em;padding-left:0em;padding-    right:0em;}
   div.listItem a.subject{font-size:1.2em;}
   div.listItem div.unread{font-weight:bold;}
   span.date{color:green;}
   /* */
   div.headers{padding-top:1em;padding-bottom:1em;}
   div.headers label{font-weight:bold;}
   div.messageBodyContainer{padding-top:1em;padding-bottom:1em;}
   div.message{border-left:solid 3px #eee;padding-left:0.5em;padding-right:0.5em;}
   div.messageTruncated{background-color:#eee;padding:0.5em;}
   /* */
   .background{background-color:#f0f0f0;padding:0.3em;}
   /* */
   form#compose label.block{display:block;}
   /* */
   .copy {padding-top: 1em;color: #aaa;}

   </style>
   </head>
   <body>

   <div id="logo">
   <"/authentication?next_webapp_name=hushmail5&amp;next_webapp_url_name=m&skin=mobile">
   branding/hushmailcom/image/logo_small" border="0"/></a>
   </div>

   <h2>Sign in</h2>

   <div class="content">


   <div class="noticeContainer" id="authenticationform_hush_username"
   style="display:
   none;padding: ;width: ">
   </div>


   <div class="noticeContainer" id="authenticationform_hush_passphrase"
   style="display:
   none;padding: ;width: ">
   </div>


    <div class="noticeContainer" id="authenticationform_hush_remember_me"
    style="display:
    none;padding: ;width: ">
    </div>

   <form name="authenticationform" id="authenticationform"
    action="/authentication/login?skin=mobile&next_webapp_name=hushmail5&    amp;next_webapp_url_name=m" method="post">
   <input type="hidden" name="form_token" value="a476281f4d85"/>
   <input type="hidden" name="next_webapp_page" value="folder/INBOX/1"/>
   <p><label for="hush_username">Email address:</label><br/>
   <input type="email" name="hush_username" id="hush_username"    value="benjuuuhvvihushmailcom"/></p>
   <p><label for="hush_passphrase">Passphrase:</label><br/>
   <input type="password" name="hush_passphrase" id="hush_passphrase"  maxlength="1000"     value=""/></p>
   <p><input type="checkbox" name="hush_remember_me" id="hush_remember_me" value="on"
    /><label for="hush_remember_me">Stay signed in when I close my browser</label></p>
   <p><input type="submit" value="Sign In"/></p>
   <input type="hidden" name="hush_customerid" value="0000000000000000"/>
   </form>

   <p><a href="/m/about" title="About">About</a></p>

    <p>To learn more about Hushmail, please visit <wwwhushmailcom/" title="Hushmail -     Free    Email with Privacy"
     >wushmailc/</a> on your computer.</p>


    </div>


   <!--
   -->

   <div class="content copy">
   &copy; 2008-2010 Hush Communications Ltd.

   </div>


   ';

    $preg_string = '%<label>From:</label>(.*)<br>%' ;

    preg_match($preg_string, $email_saved_page, $res);
    $email_from = $res[1];

    echo $email_from ;

    ?>

    </blink>

Ответы [ 2 ]

0 голосов
/ 29 июня 2010

Измените br деталь на что-то вроде этого:

<br ?/?>

0 голосов
/ 29 июня 2010

ваш шаблон кажется многострочным, не так ли? Так что, я думаю, вы также должны установить регулярное выражение как многострочное, используя модификатор m (см. здесь ). Просто добавьте 'm' после вашего второго символа%.

...