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

From: Date: Wed, 17 Jul 2002 01:24:26 +0000
Subject: 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-199@lists.php.net to get a copy of this message
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 >

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