Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //use a site with lots of email address on.
- $string = file_get_contents("https://stackoverflow.com/questions/3901070/in-php-how-do-i-extract-multiple-e-mail-addresses-from-a-block-of-text-and-put");
- //initialise an empty array.
- $matches = array();
- //regular expression that matches most email addresses, courtesy of @Eric-Karl.
- $pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}/';
- //perform global regular expression match, ie search the entire web page for a particular thing, and store it in the previously initialised array.
- preg_match_all($pattern, $string, $matches);
- //output array of values; remove duplicate email addresses, but maintain incremental key count.
- var_dump(array_values(array_unique($matches[0])));
- //store above in array for upcoming bit.
- $neaterArray = array_values(array_unique($matches[0]));
- //count the amount of variables in the array.
- $count = count($neaterArray);
- //implode array values to string.
- $emailsAsString = implode(", ", $neaterArray);
- //present the string, prepended with the count.
- echo "<h3>$count email addresses in total:</h3> $emailsAsString";
- ?>
- array (size=19)
- 0 => string 'apple-touch-icon@2.png' (length=22)
- 1 => string 'example@slu.edu' (length=15)
- 2 => string 'a+b@google.com.sg' (length=17)
- 3 => string 'test1+2@gmail.com' (length=17)
- 4 => string 'test-2@yahoo.co.jp' (length=18)
- 5 => string 'test@test.com' (length=13)
- 6 => string 'test@test.co.uk' (length=15)
- 7 => string 'test@google.com.sg' (length=18)
- 8 => string 'email@domain.info' (length=17)
- 9 => string 'email@domain.inf' (length=16)
- 10 => string 'first.lastname@domain.be' (length=24)
- 11 => string 'lastname@domain.be' (length=18)
- 12 => string 'HIDDENFORLOGICALREASONS@cameranh.rs.gov.br' (length=42)
- 13 => string 'HIDDENFORLOGICALREASONS@cameranh.rs.go' (length=38)
- 14 => string 'myemail@office21.company.com' (length=28)
- 15 => string 'mymail@yahoo.com' (length=16)
- 16 => string 'my-e.mail@yahoo.com' (length=19)
- 17 => string 'joe@mysite.com' (length=14)
- 18 => string 'name@example.com.sv' (length=19)
- 19 email addresses in total:
- apple-touch-icon@2.png, example@slu.edu, a+b@google.com.sg, test1+2@gmail.com, test-2@yahoo.co.jp, test@test.com, test@test.co.uk, test@google.com.sg, email@domain.info, email@domain.inf, first.lastname@domain.be, lastname@domain.be, HIDDENFORLOGICALREASONS@cameranh.rs.gov.br, HIDDENFORLOGICALREASONS@cameranh.rs.go, myemail@office21.company.com, mymail@yahoo.com, my-e.mail@yahoo.com, joe@mysite.com, name@example.com.sv
- function file_get_contents_curl($url) {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
- $data = curl_exec($ch);
- curl_close($ch);
- return $data;
- }
- /[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}/
- /[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,4}/i
- var_dump(array_values(array_unique($matches[0])));
- $neaterArray = array_values(array_unique($matches[0]));
- $neaterArray = (array_values(array_unique($matches[0])));
- var_dump($neaterArray);
- $pattern = '/[w.%+-]+@(?:[a-zd-]+.)+[a-z]{2,4}/iu';
- if (!preg_match_all($pattern, $contents, $emails)) {
- echo '<h3>No emails found</h3>';
- } else {
- $unique_emails = array_flip(array_flip($emails[0]));
- $count = sizeof($unique_emails);
- $email_string = implode(', ', $unique_emails);
- echo "<h3>$count email addresses in total:</h3> $email_string";
- }
Add Comment
Please, Sign In to add comment