2 sep 2012 kl. 19.48 skrev John Taylor-Johnston:

> How can I clean this up?
>>> My approach would be to split the hole text into smaller chunks (with e.g. 
>>> explode()) and extract the interesting parts with a regular expression. 
>>> Maybe this will give you some ideas:
>>>> $chunks = explode("-30-", $mystring);
>>>> foreach($chunks as $chunk) {
>>>>         preg_match_all("/News Releases\n(.+)/s", $chunk, $matches);
>>>>         var_dump($matches[1]);
>>>> }
>>>> The regex matches all text between "News Releases" and the end of the 
>>>> chunk.
>> 2) How could I suck it into one nice easy to handle array?
>> 
>> |$mynewarray=|array {
>>  [0]=> "Residential Fire Determined to be Accidental in Nature ..."
>>  [1]=> "Arrest Made in Residential Fire ..."
>> } 
> I was hoping preg_match_all would return strings.  I w/as hoping |$matches[1] 
> was a string.|/
> 
> source: http://www.cegepsherbrooke.qc.ca/~languesmodernes/test/test4.phps
> result: http://www.cegepsherbrooke.qc.ca/~languesmodernes/test/test4.php

Have you read up on 'preg_match_all' in the manual? What makes you think that 
preg_match_all returns strings? "$matches[1]", in the above case contains an 
array with all matches from the parenthesized subpattern, which is "(.+).

> This is ugly. How can I clean this up like this?
> 
> $mynewarray= array {
>  [0]=> "Residential Fire Determined to be Accidental in Nature ..."
>  [1]=> "Arrest Made in Residential Fire ..."
> }

Why not add two lines of code within the first loop?

$chunks = explode("-30-", $mystring);
foreach($chunks as $chunk) {
    preg_match_all("/News Releases\n(.+)/s", $chunk, $matches);
    foreach($matches[1] as $matched_text_line) {
        $mynewarray[] = $matched_text_line;
    }
}

Besides the regex, this is pretty basic php. 

/frank
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to