Bug #14217: Strange bug with strtr() function
| From: | akul at otamedia dot com | Date: | Sun, 25 Nov 2001 15:26:42 +0000 |
| Subject: | Bug #14217: Strange bug with strtr() function | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-71599@lists.php.net to get a copy of this message | ||
From: akul@otamedia.com
Operating system: windows 98
PHP version: 4.0.6
PHP Bug Type: Strings related
Bug description: Strange bug with strtr() function
I have very simple function to convert some sumbols to underscores:
function to_tag($text)
{
$from=" \"\t\\/:#$%^&*()=+-!`'~?<>[],.";
$retval=strtr($text,$from,str_repeat('_',strlen($from)));
// debug output
echo "\r\n<BR>[$text] >> [$retval]";
return $retval;
}
And I have such string (first world is russian, Win-1251): "àâòîðñêàÿ
d'fusion"
On simple example all is Ok:
<?
include_once('tag.inc.php');
to_tag("àâòîðñêàÿ d'fusion");
?>
X-Powered-By: PHP/4.0.7-dev
Content-type: text/html; charset=windows-1251
<BR>[àâòîðñêàÿ d'fusion] >> [àâòîðñêàÿ__d_fusion]
But!
If this function called from more complex real code, ['] doesn't
converted:
Function using to_tag():
function getPropXML($FID,$TID)
{
debug("getPropXML($FID,$TID)");
$value=$this->getProp($FID,$TID);
$target=$this->getCopy($TID);
return t(to_tag($target->Name)
,t('path',$this->getPath($TID))
.t('value',cdata($value))
.t('Parent',$this->getPath($target->ParentID)));
}
Debug output for object with this string:
...
<BR>[Ðåñòîðàí] >> [Ðåñòîðàí]
<BR>[àâòîðñêàÿ d'fusion] >> [àâòîðñêàÿ_d'fusion]
<BR>[$25-70] >> [_25_70]
...
I tried to clear situation and find point of bug, but can't :(
--
Edit bug report at: http://bugs.php.net/?id=14217&edit=1