PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Configuration » Config » Bug #2179

parse_ini_file and tildes

Details

Submitted2004-08-20 19:57 UTC
Fromrobert at osuosl dot org
Assignedryansking
StatusClosed
PackageConfig
PHP Version5.0.0
OSLinux (2.6.7)
Roadmaps(Not assigned)

Comments

[2004-08-20 19:57 UTC] robert at osuosl dot org

Description:
------------
for URLs inside of an .ini file, the parse_ini_file will break when it encounters a tilde (~). Inside of IniFile.php, circa line 122, you have a bunch of conditions "or"ed together, looking for semicolons, commas, percents, etc. Tilde needs to be added to this list in order to allow URLs such as:
http://www.example.com/~username/

After making the change, here's the diff:

123d122
< strpos($content, '~') !== false ||

Reproduce code:
---------------
--config.conf.php--
[server]
url="http://www.example.com/~username/path"

<?php
// config.php
include("Config.php");
$c = new Config();
$configFile = "config.conf.php";
$root = $c->parseConfig($configFile, "IniFile");
$serverSection = $root->getItem("section", "server");
$server_uriDirective = $serverSection->getItem("directive", "uri");
$server_uriDirective->setContent($server_uriDirective->getContent() );
$res = $c->writeConfig();
///////
$root = $c->parseConfig($configFile, "IniFile");
?>

Expected result:
----------------
--config.conf.php--
[server]
url="http://www.example.com/~username/path"

Actual result:
--------------
Warning: Error parsing config.conf.php on line 2
in /usr/share/php/Config/Container/IniFile.php on line 63

--resulting config.conf.php--
[server]
uri=http://www.example.com/~username/path

[2004-10-13 23:33 UTC] ryansking at mac dot com

I believe I have fixed this. I will relase an update
later this evening.

[2005-01-18 22:57 UTC] richtl at arscognita dot com

I'm having this problem with PHP v4.3.10 and Config 1.10.3. Tilde's in iniFile-formatted configuration files cause errors:

Warning: Error parsing /home/richtl/workspace.tmp/mm_trunk/mindmeld.config on line 3 in /usr/share/pear/Config/Container/IniFile.php on line 63

Line 3 of mindmeld.config reads:
site=/~richtl

Did this bug ever really get fixed?