Apostrophes are valid in the local part of email addresses - I think the problem is with this line:
preg_match_all (“/[a-zA-Z0-9_.+-]+[@][\-a-zA-Z0-9_.]+/”, $strAddresses, $strAddressArray);
If you add in a ' to the matching of the local part then it works fine, without that it strips off the bit in front of the '.
NB: there are actually a few other characters permitted in local parts not covered by this, if you wanted to be able to match any syntactically RFC 2822 valid local part I think you'd use [a-zA-Z0-9!#$%&'*+/=?^_.`{|}~-]+ - this would allow some invalid addresses through as a . is only allowed between two characters which aren't dots and can't appear at the start or end of the local part, but accounting for that quirk is probably overkill. Most of those characters aren't used out in the real world tho' for human email addresses with the exception of apostrophe which comes in with Irish patronymic surnames like e.g.: Jon.O'Reilly@somedomain.com