Doc #60314 [Ver->Csd]: Metaphone returns fewer phonemes than defined

From: Date: Wed, 04 Nov 2020 10:10:11 +0000
Subject: Doc #60314 [Ver->Csd]: Metaphone returns fewer phonemes than defined
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-18076@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60314&edit=1 ID: 60314 Updated by: phpdocbot@php.net Reported by: gravisoft at gmail dot com Summary: Metaphone returns fewer phonemes than defined -Status: Verified +Status: Closed Type: Documentation Problem Package: Strings related Operating System: Windows XP SP3 PHP Version: 5.3.8 Assigned To: cmb Block user comment: N Private report: N New Comment: Automatic comment on behalf of cmb Revision: http://git.php.net/?p=doc/en.git;a=commit;h=ef05457faa8045529ef7d0ec97309667838feb44 Log: Fix #60314: Metaphone returns fewer phonemes than defined Previous Comments: ------------------------------------------------------------------------ [2011-11-17 23:13:21] felipe@php.net Yes, in fact it isn't a phonemes limit nor an strict string limit. Because it doesn't does wrapping in this case when it yields more than 1 char in the end. You're right, the documentation must be updated accordially. :) ------------------------------------------------------------------------ [2011-11-17 22:39:17] gravisoft at gmail dot com This doesn't have anything to do with it "going over" the phoneme limit parameter, it's about it translating too few phonemes. If you're defining (X -> KS) as one phoneme, then metpahone('axc', 3) == 'AKS' is incorrect because it only translated (A -> A) and (X -> KS) which is two phonemes. Translating three phonemes - (A->A), (X->KS), (C->K) - should have yielded 'AKSK'. If you're defining each K and S from (X -> KS) as a phoneme, then metaphone('axc', 2) == 'AKS' is incorrect as per bug #60123 (going over restricted number of phoneme characters). If that isn't a bug, then the documentation should be modified to note it as such. Regardless, something is amiss here. ------------------------------------------------------------------------ [2011-11-17 21:58:05] felipe@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php It works following the Text-Metaphone CPAN package, it stop decoding when reach the limit of phonems, but when decoding the last char it can pass the limit suplied, because this metaphone('AX', 2) == metaphone('AXC', 3). ------------------------------------------------------------------------ [2011-11-16 20:52:15] gravisoft at gmail dot com Description: ------------ Under certain conditions, the metaphone function returns fewer phonemes than the $phonemes parameter specifies. This is an edge-case occurrence when dealing with an X near the end of the specified phoneme count. For the test script, the following phoneme transformations take place: A -> A X -> KS C -> K Test script: --------------- <?php var_dump('axccc', 2); // Should produce AKS var_dump('axccc', 3); // Should produce AKSK as "X->KS" is one phoneme var_dump('axccc', 0); // Should produce AKSKKK ?> Expected result: ---------------- string(3) "AKS" string(4) "AKSK" string(6) "AKSKKK" Actual result: -------------- string(3) "AKS" string(3) "AKS" string(6) "AKSKKK" ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60314&edit=1

« previous php.doc.bugs (#18076) next »