ID: 31188 Updated by: [EMAIL PROTECTED] Reported By: travis at dreamsage dot com Status: Bogus Bug Type: Strings related Operating System: Windows XP (linux untested) PHP Version: 4.3.9 New Comment:
>From reading Schwern's man page, it appears that there was an original BASIC version from 1990 and then a C version in 1995. It also appears that Schwern made a few custom improvements on the original algorithm. I don't know which version made it into PHP. http://search.cpan.org/~mschwern/Text-Metaphone-1.96/ Metaphone.pm If you can demonstrate that somehow the PHP version is different than the Perl version, then that would probably be actionable, but outside of that, I don't think anyone is going to look into the algorithm. Previous Comments: ------------------------------------------------------------------------ [2004-12-20 00:55:01] travis at dreamsage dot com if the code has been rewritten for version 5 then I don't know if there's a problem in that version. I have only tested 4.3 where there is a problem. Also, I certainly don't think VB is better than PHP. It's for my job and sometimes they make me do things that I don't want to do. anyway, I ran through the "a"s and found some that should describe the problem. Listed is the word then the php string then what it should be. the g should be silent Agnail - AKNL - ANL the b should not be silent Alembic - ALMK - ALMB the h should be silent Afghan - AFFN - AFKN the x is misplaced Ascian - ASXN - ASN Also, PHP has a problem returning more than the number of chars you ask it to return on very rare occasions. If I ask it to return 4 chars it will return 5 every maybe 400 times. And you're right, the original was written in 95 and not 90. My mistake there, I was writing from memory. this is the java version and seems to work nicely to test on. http://www.wbrogden.com/phonetic/index.html Thanks Travis ------------------------------------------------------------------------ [2004-12-20 00:34:59] [EMAIL PROTECTED] Our documentation (http://nl.php.net/metaphone) states that " Metaphone was developed by Lawrence Philips <lphilips at verity dot com>. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995]. " so your "original" basic code can not have anything to do with the implementation we use. Therefore this is not a bug, just a slightly different algorithm. ------------------------------------------------------------------------ [2004-12-20 00:28:42] [EMAIL PROTECTED] I bogused you because it sounded like a simple "VB does this right, PHP doesn't", which doesn't really say anything. You're serious, though, so I apologize for the quick bogus. We can't fix this without a lot more information. We need a valid test case to examine a specific fault before we can even move on this. Simply saying "some of these are wrong" doesn't help us at all, and as a result, we can't help you. You gave us some letters that confuse our metaphone, so let's work with that -- do you have a specific word that is metaphoned differently? The implementation, in PHP 5 at least, is based on CPAN's "Text-Metaphone-1.96" by Michael G Schwern according to the source. Thanks again. ------------------------------------------------------------------------ [2004-12-19 23:37:23] travis at dreamsage dot com I have checked my VB against results from the original Basic version, a C version as well as a commonly used Java version and the PHP version gives different results than any of these. You have a bug here. Please don't ignore this. The metaphone code commonly runs spellchecks for many MANY websites. The code that controls this is only a couple hundred lines long and so it shouldn't take long to fix. Travis ------------------------------------------------------------------------ [2004-12-19 23:00:28] [EMAIL PROTECTED] Sorry, but your problem does not imply a bug in PHP itself. For a list of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php as this bug system is not the appropriate forum for asking support questions. Thank you for your interest in PHP. Perhaps your VB is wrong? We can\'t do anything about this without a lot more information. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/31188 -- Edit this bug report at http://bugs.php.net/?id=31188&edit=1