login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foutje maar wat?

Offline WMtools - 20/09/2005 13:07 (laatste wijziging 20/09/2005 13:07)
Avatar van WMtoolsNieuw lid Hoi,

Ik heb een probleem. Dat is hetvolgende.

Als ik devolgende functie gebruikt:
  1. <?php
  2. function from( $input ) {
  3. $match = preg_match("!".preg_quote("<")."(.+?)".preg_quote(">")."!", "".$input."", $matchresult);
  4. $matchresult = end( $matchresult );
  5. $from = $matchresult;
  6. return $from;
  7. }


Dan geeft die niks terug. Een leeg veld.

en als ik hetvolgende gebruik:
  1. <?php
  2. function from( $input ) {
  3. $input = 'aa <124.@.nl>';
  4. $match = preg_match("!".preg_quote("<")."(.+?)".preg_quote(">")."!", "".$input."", $matchresult);
  5. $matchresult = end( $matchresult );
  6. $from = $matchresult;
  7. return $from;
  8. }

Dan geeft die 124.@.nl terug. Dit moet het zijn alleen dan de input die in de functie komt. De code die ik gebruik:

  1. <?php
  2. if( substr( $lowerbuffer, 0, 5 ) == 'from:' ) {
  3. $from = htmlspecialchars( substr( $buffer, 6, strlen( $buffer ) ) );
  4. $from = from( $from );
  5. }

Als ik
  1. <?php
  2. $from = from( $from );

weglaat dan krijg ik:
  1. Jeffrey <jrooijmans@planet.nl>

Te zien. Terwijl er juist alleen het e-mail adres moet komen.

Iemand enig idee?

4 antwoorden

Gesponsorde links
Offline Thomas - 20/09/2005 14:20 (laatste wijziging 20/09/2005 14:22)
Avatar van Thomas Moderator Misschien is het handiger als je ons vertelt wat je uiteindelijk wilt - e-mail adressen uit <...> halen?

Dus:
invoer:
"Jantje" <jantje@whatever.com>, "Pietje" <admin@pietjepuk.nl>, ...

uitvoer:
array met de waarden jantje@whatever.com en admin@pietjepuk.nl, ...
?
Offline DRUNK - 20/09/2005 14:44
Avatar van DRUNK PHP gevorderde Dit is niet de beste code maar ik vind hem wel leuk:
  1. #!/opt/php5/bin/php -q
  2. <?php
  3.  
  4. $string = 'Jeffrey <jrooijmans@planet.nl>';
  5.  
  6. for($i=0,$m=strlen($string),$o=FALSE,$b=NULL;$i<=$m;$i++) {
  7. if ((!$o) && ($string{$i} == '<')) {$o=TRUE;continue;}
  8. if (($o) && ($string{$i} != '>')) {$b.=$string{$i};continue;}
  9. else $o=FALSE;
  10. }
  11. print "Voor bewerking: " . $string . "\n";
  12. print "Na bewerking: " .$b . "\n";
  13. ?>
Offline WMtools - 20/09/2005 15:42
Avatar van WMtools Nieuw lid @ DRunk werkt dit ook met php4.x? Of alleen met 5?
Offline DRUNK - 21/09/2005 10:41 (laatste wijziging 21/09/2005 10:41)
Avatar van DRUNK PHP gevorderde Er zitten geen 'gekke' OOP constructies in en er worden bizar weinig functies gebruikt, je kan dit gewoon met PHP4 gebruiken. Je moet toch de bovenste regel verwijderen, dit is alleen nodig in CLI mode.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.251s