Re: [SMARTY-DEV] RE: [SMARTY] RE: [SMARTY-DEV] Trouble compiling tpl from resource plugin
| From: | MCM Media Consult Maier & Partner GmbH | Date: | Wed, 17 Jul 2002 09:39:04 +0000 |
| Subject: | Re: [SMARTY-DEV] RE: [SMARTY] RE: [SMARTY-DEV] Trouble compiling tpl from resource plugin | ||
| References: | 1 | Groups: | php.smarty.dev |
| Request: | Send a blank email to php-smarty-dev+get-200@lists.php.net to get a copy of this message | ||
Ah, I see, it doesn't handle drive parts longer than one char.
But then, my report bug is another, completely new bug :(
-----Ursprüngliche Nachricht-----
Von: "Gary Loescher" <gary@loescher.org>
An: ".SMK." <s-m-k@gmx.net>; "Smarty-Dev@Lists. Php. Net"
<smarty-dev@lists.php.net>
Gesendet: Mittwoch, 17. Juli 2002 03:24
Betreff: [SMARTY-DEV] RE: [SMARTY] RE: [SMARTY-DEV] Trouble compiling tpl
from resource plugin
> Actually, it looks like basename() handles single and
> double backslashes correctly, even inside double quotes.
>
> It even works correctly in this instance:
> "file:c:\foo\templates\bar.tpl" -> "bar.tpl"
>
> But, it (also correctly) doesn't make "db:foo.tpl" =
> "foo.tpl". So the issue is that when Windows tries to
> write the compiled file "db:foo.tpl.php", it gets as
> far as creating a zero-byte file named "db" and then
> gets confused.
>
> Gary
>
>
> >-----Original Message-----
> >From: .SMK. [mailto:s-m-k@gmx.net]
> >Sent: Tuesday, July 16, 2002 4:06 PM
> >To: smarty-general@lists.php.net
> >Subject: [SMARTY] RE: [SMARTY-DEV] Trouble compiling
> >tpl from resource
> >plugin
> >
> >
> >Er, maybe I'm totally wrong -- basename() works (PHP
> >4.2.1/Win32).
> >But: filenames usually get the $template_dir prepended
> >(on Win32,
> >DIRECTORY_SEPARATOR is the backslash), and paths in the
> >*compiled*
> >templates are written using double quotes:
> >
> >$this->_smarty_include("file:e:\httpd\htdocs\default\sma
> >rty\templates\he
> >ader.tpl", array('title' => "foo"));
> >
> >The \t (right after smarty) is the TAB escape sequence, causing
> >basename() to fail.. So, shouldn't it work if the
> >double quotes are
> >replaced with single ones..?
> >
> >>Blagh. that should be "ignores double byte characters."
> >>
> >>>-----Original Message-----
> >>>From: Gary Loescher [mailto:gary@loescher.org]
> >>>Sent: Tuesday, July 16, 2002 11:44 AM
> >>>To: Monte Ohrt
> >>>Cc: Jason Sweat; smarty-dev@lists.php.net
> >>>Subject: RE: [SMARTY-DEV] Trouble compiling tpl from
> >>>resource plugin
> >>>
> >>>
> >>>Well, I vote for urlencode. Basename only looks for
> >>>slashes (\ and /) and double byte characters,
> >>>according to the code.
> >>>Gary
> >>>
> >>>>-----Original Message-----
> >>>>From: Monte Ohrt [mailto:monte@ispi.net]
> >>>>Sent: Tuesday, July 16, 2002 11:12 AM
> >>>>To: gary@loescher.org
> >>>>Cc: Jason Sweat; smarty-dev@lists.php.net
> >>>>Subject: Re: [SMARTY-DEV] Trouble compiling tpl from
> >>>>resource plugin
> >>>>
> >>>>
> >>>>Using strpos, We are assuming that ":" is the only
> >>>>character we're
> >>>>looking for. Are there any other characters that
> >>>>basename wouldn't
> >>>>catch? In any event, urlencode is much faster and
> >>>>covers everything.
> >>>>
> >>>>Gary Loescher wrote:
> >>>>> Heh. I was just writing an email to suggest this
> >>>>> same code. Great minds, Jason :)
> >>>>>
> >>>>> Looks like we're stuck with munged filenames
> >>>>> again, or a performance hit. Personally, the
> >>>>> filename doesn't bother me. I actually like
> >>>>> being able to easily identify the resource
> >>>>> used to get the template. In the "file:c:/foo.tpl"
> >>>>> case, though, I guess that the price for
> >>>>> using an absolute path would be funny-looking
> >>>>> compiled template names. ;) Seems to me
> >>>>> using an absolute path is a bad practice, anyway.
> >>>>>
> >>>>> Gary
> >>>>>
> >>>>>
> >>>>>>-----Original Message-----
> >>>>>>From: Jason Sweat [mailto:jsweat_php@yahoo.com]
> >>>>>>Sent: Tuesday, July 16, 2002 10:36 AM
> >>>>>>To: smarty-dev@lists.php.net; gary@loescher.org;
> >>>>monte@ispi.net
> >>>>>>Subject: Re: [SMARTY-DEV] Trouble compiling tpl from
> >>>>>>resource plugin
> >>>>>>
> >>>>>>
> >>>>>>What about this ?
> >>>>>>if ($offset=strpos($string,':')) {
> >>>>>> $offset++;
> >>>>>>}
> >>>>>>$match = substr($string,$offset);
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>Well we may have to use urlencode instead of trying to
> >>>>>>get the filename.
> >>>>>>preg_match and preg_split are get what we want but are
> >>>>>>much slower.
> >>>>>>
> >>>>>>repeated 100,000 times:
> >>>>>>
> >>>>>>urlencode(basename($string)); --> 2.920
> >>>>>>secs
> >>>>>>
> >>>>>>preg_match('![^:|/\\\\$]!',$string,$match); --> 7.627
> >>>>>>secs
> >>>>>>explode(':',basename($string)); --> 5.436 secs
> >>>>>>
> >>>>>>The second two get it right, but they take much
> >>>>>>longer. Unless there are
> >>>>>>any other ideas?
> >>>>>>
> >>>>>>Monte
> >>>>>>
> >>>>>>__________________________________________________
> >>>>>>Do You Yahoo!?
> >>>>>>Yahoo! Autos - Get free new car price quotes
> >>>>>>http://autos.yahoo.com
> >>>>>>
> >>>>>>--
> >>>>>>Smarty Development Mailing List (http://smarty.php.net/)
> >>>>>>To unsubscribe, visit:
> >>>>>>http://www.php.net/unsub.php
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>>--
> >>>>Monte Ohrt <monte@ispi.net>
> >>>>Director of Technology, ispi Inc.
> >>>>
> >>>
> >>>--
> >>>Smarty Development Mailing List (http://smarty.php.net/)
> >>>To unsubscribe, visit: http://www.php.net/unsub.php
> >>>
> >>
> >>--
> >>Smarty Development Mailing List (http://smarty.php.net/)
> >>To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >
> >
> >--
> >Smarty General Mailing List (http://smarty.php.net/)
> >To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
> --
> Smarty Development Mailing List (http://smarty.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>