Surely substr_compare() does both begin & end easily enough. Though the fact that it throws warnings is annoying.
Jared > -----Original Message----- > From: Stan Vassilev | FM [mailto:[EMAIL PROTECTED] > Sent: 21 July 2008 13:18 > To: internals > Subject: Re: [PHP-DEV] New string functions: str_startswith() > and str_endswith() > > > Hi, > > ucfirst() isn't solving a pain point either. But we use it > all the time (I do at least). > > I'm particularly for begins/endswith() function as I do this > all over my code and I'd appreciate the simplification and > free extra performance. > > Regards, > Stan Vassilev > > >I agree that many existing functions can be implemented with a > >combination of others, but in this case it is really just one call. > >The strlen() call is almost free, and in many cases you > wouldn't even > >use it. If you are looking for .php files, for example: > > > > if(str_endswith($path,'.php')) > > > > vs. > > > > if(substr($path,-4)=='.php')) > > > > I just don't see that this is solving any real painpoint. > > > > -Rasmus > > > > > > Stan Vassilev | FM wrote: > >> > >> Hi, > >> > >> Actually starts with and ends with is a very common case. > I see your > >> concerns, but I can see instantly quite a lot of places in my code > >> where I'd use those. And I bet it'll be faster too. > >> > >> Many of the string functions can be replicated with > one-liners using > >> other string functions, same for array functions. I still think a > >> very common case should be addressed natively. > >> > >> Regards, > >> Stan Vassilev > >> > >>> For the start of the string: > >>> > >>> substr($haystack,0,strlen($needle)) == $needle > >>> > >>> And for the end of the string: > >>> > >>> substr($haystack,-strlen($needle)) == $needle > >>> > >>> For case-insensitivity, just strtolower both. > >>> > >>> Writing built-in functions for something that can be done with > >>> trivial one-liners isn't something we typically do. > >>> > >>> -Rasmus > >>> > >>> Lars Strojny wrote: > >>>> Hi Martin, > >>>> > >>>> first of all, thanks for you work! A few comments below. > >>>> > >>>> Am Samstag, den 19.07.2008, 14:55 +0200 schrieb Martin Jansen: > >>>>> Attached you'll find a patch against PHP_5_3 that > implements two > >>>>> new string functions: > >>>>> > >>>>> str_startswith(haystack, needle [, case_sensitivity]) > >>>> > >>>> That's in my opinion too easy to solve with strpos($haystack, > >>>> $needle) === 0. > >>>> > >>>>> checks if haystack starts with needle. The check is performed > >>>>> case-insensitively, but this can be overridden by > passing TRUE as > >>>>> the value for the third parameter. The second function > >>>>> > >>>>> str_endswith(haystack, needle [, case_sensitivity]) > >>>> [...] > >>>> > >>>> Suffix checking is indeed a bit harder. But I'm not sure if we > >>>> should introduce a function for every special case. Suffix > >>>> verification often is about verifying file extensions. > That could > >>>> be easily solved with > >>>> pathinfo() (and to make that easier, it would be more helpful to > >>>> allow the engine to directly access returned arrays like > >>>> pathinfo($file)['extension']). The other thing I would > love to see > >>>> is something I really love in Ruby: you have various > ways to work > >>>> with substrings[1]. For example you can do > "foobar"[-3,3] == "bar" > >>>> to check the suffix. That's in my opinion much easier > and flexible. > >>>> > >>>> So -1 from me for the new string functions, but +1 for niftier > >>>> variants to work with offsets. > >>>> > >>>> [1] http://pleac.sourceforge.net/pleac_ruby/strings.html > >>>> > >>>> cu, Lars > >>> > >>> > >>> -- > >>> PHP Internals - PHP Runtime Development Mailing List To > unsubscribe, > >>> visit: http://www.php.net/unsub.php > >>> > >> > >> > > > > > > -- > > PHP Internals - PHP Runtime Development Mailing List To > unsubscribe, > > visit: http://www.php.net/unsub.php > > > > > -- > PHP Internals - PHP Runtime Development Mailing List To > unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php