Re: [SMARTY-DEV] RE: [SMARTY] RE: [SMARTY-DEV] Trouble compiling tpl from resource plugin

From: 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 > > >

« previous php.smarty.dev (#200) next »