tags:

views:

35

answers:

2

I've been trying the below script (within a larger app I'm working on) for hours now and I just can't understand what the problem is, no matter what I get "Notice: Undefined offset: 1" meaning that its having some problem putting the result into an array from the preg_match... I did a process that was nearly identical to a similar page earlier and it worked fine.. I would greatly appreciate any advice as I just don't know what to do at this point as I've already spent hours trying to troubleshoot this, I don't have tons of regex experience but I have used it a fair amount and I just can't figure out what could be preventing this from working correctly.

 <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>
A: 

Hi, your pattern seems to be multiline, isn't it? So you have to set your regexp as multiline too I guess, using the m modifier (see here). Just add 'm' after your second % character.

greg0ire
sorry was having a lot of trouble just getting the pattern to display properly in the post.. no the pattern isn't multiline, just the source is, at least I believe so, I will check to make sure
Rick
How can the pattern not be multiline if the source is?
greg0ire
It isn't multi line, its just a string like this: "<label>From:</label> Hush Communications <[email protected]><br/>" which is taken from a multi-line source, I'm not sure what you mean by "How can the pattern not be multiline if the source is? " as its just a single line out of a multi-line souce that I am targeting and I have done this with other pages with no problem so this is seeming strange to me.
Rick
(also, I think I put the wrong source html up there, I am really struggling with getting the html to display correctly on this site, but its similar to whats up there)
Rick
A: 

Change the br part to something like this:

<br ?/?>

Vili