2010-06-29 50 views
0

我一直在嘗試下面的腳本(在一個更大的應用程序,我正在工作)現在幾個小時,我只是不明白什麼是問題,不管我得到什麼「注意:Undefined offset:1」,這意味着它有一些問題將結果放入preg_match的數組中......我做了一個與之前的類似頁面幾乎相同的進程,並且它工作正常。我非常感謝任何建議,因爲我現在不知道該怎麼做,因爲我已經花了幾個小時試圖解決這個問題,我沒有大量的正則表達式的經驗,但我已經使用了它很多,而我只是無法弄清楚什麼可能會阻止它正常工作。嘗試使用preg_match提取html頁面,但這是令人困惑的我

<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> 
+1

我看你的代碼格式掙扎......嘗試選擇你的代碼,然後點擊「代碼」按鈕。 – greg0ire 2010-06-29 10:10:55

+0

Rick,我突出顯示了你的代碼,並在編輯器中點擊了格式化按鈕。這並不完美(看起來像你試圖手動縮進每行4個空格,但錯過了一對),但它是可讀的。此外,眨眼標籤從哪裏來? – 2010-06-29 11:00:35

+1

沒有看到任何'(。*)
'子字符串在$ email_saved_pa​​ge中。 – Toto 2010-06-29 11:22:50

回答

0

更改br部分是這樣的:

<br ?/?>

0

你的模式似乎是多行的,不是嗎?所以你也必須使用m修飾符(請參閱here)將我的regexp設置爲多行。在第二個%字符後面加'm'。

+0

對不起,只是讓模式顯示在帖子中正確顯示很多麻煩..沒有模式不是多行,只是來源是,至少我相信,我會檢查以確保 – Rick 2010-06-29 10:10:58

+0

模式如何如果來源不是多行? – greg0ire 2010-06-29 10:12:45

+0

這不是多線,它只是一個像這樣的字符串:「噓通信<[email protected]>
的」從多線源獲取,我不知道你是什麼意思通過「我的目標是多模式源,我的模式不是多行的,如何才能做到這一點?」,我已經在沒有任何問題的情況下與其他頁面一起完成了這項工作,所以這對我來說似乎很陌生。 – Rick 2010-06-29 10:21:45