Re: Ignoring Case on directories [message #171178 is a reply to message #171170] |
Tue, 28 December 2010 22:39 |
Captain Paralytic
Messages: 204 Registered: September 2010
Karma:
|
Senior Member |
|
|
On Dec 28, 8:33 pm, jwcarlton <jwcarl...@gmail.com> wrote:
> I think that the answer to this is "no", but I thought I'd ask :-)
>
> I'm wanting to open a file where the directory path is given by the
> user. For example:
>
> if (is_file("/path/to/" . $_GET['directory'] . "/file.txt"))
> $example = FILE("/path/to/" . $_GET['directory'] . "/file.txt");
>
> else
> // return error
>
> // please ignore any typos; I just typed this up here for the example
>
> The thing is, the directory path could be, say, /path/to/SomeDirectory/
> file.txt, but the user could enter "somedirectory"; in which case,
> they would get the error.
>
> Currently, I keep all of the directory names in a MySQL database, then
> before opening file.txt, I search for the directory in MySQL (which is
> case insensitive), then load the path based on the name in the
> database instead of what's given. But during peak hours, this method
> can result in several hundred MySQL queries per minute.
>
> Before this, I just used opendir to load all of the directories into
> an array on the fly, then did a case insensitive search through the
> array. But, when I started having 90,000 directories (30,000 in 3
> separate parent directories), this was considerably slower than using
> MySQL.
>
> So, the MySQL search works, but the question is, can PHP do a
> directory lookup that's case insensitive; and, preferably, return the
> case-correct directory name?
A few hundred MySQL queries a minute. What's the problwm with that?
And if you have the directories in a database, why aren't you
presenting them to the user to select as Jerry suggested.
And if there reall are good reasons for not doing a mere few hundreds
of queries aa minute, or offering a list of direcories to select from,
why not just make them all lower case in the first place?
If feels like you are trying to find a way to fix a very poor design.
The best way to do that is to change the design to something decent.
|
|
|