You are here: Re: replace single slash with double slash « PHP Programming Language « IT news, forums, messages
Re: replace single slash with double slash

Posted by Jerry Stuckle on 09/22/07 19:20

dkirkdrei@yahoo.com wrote:
> On Sep 22, 11:29 am, Jerry Stuckle <jstuck...@attglobal.net> wrote:
>> dkirkd...@yahoo.com wrote:
>>> On Sep 22, 10:40 am, gosha bine <stereof...@gmail.com> wrote:
>>>> dkirkd...@yahoo.com wrote:
>>>>> On Sep 22, 4:28 am, gosha bine <stereof...@gmail.com> wrote:
>>>>>> dkirkd...@yahoo.com wrote:
>>>>>>> I am having a bit of trouble trying to double up on slashes in a file
>>>>>>> path. What I am trying to do is very similar to the code below:
>>>>>>> <?
>>>>>>> $var = "\\wusais\Intranets\Intranets\fpdb\pdf\weinig\00505882.pdf";
>>>>>>> $new = preg_replace("\\", "\\\", "$var");
>>>>>>> ?>
>>>>>>> Code above produces the following error:
>>>>>>> Parse error: parse error, unexpected T_VARIABLE in c:\Inetpub\wwwroot
>>>>>>> \pages\replace.php on line 12
>>>>>>> In the end, $new needs to be: \\\\wusais\\Intranets\\Intranets\\fpdb\
>>>>>>> \pdf\\weinig\\00505882.pdf
>>>>>>> but it seems to be very difficult replacing slashes.
>>>>>>> Any help would be greatly appreciated
>>>>>> $var = "\\wusais\\Intranets\\Intranets\\fpdb\\pdf\\weinig\\00505882.pdf";
>>>>>> echo strtr($var, array('\\' => '\\\\'));
>>>>>> note that initially $var actually contains only single slashes, however
>>>>>> you must write each slash twice because of php escaping rules.
>>>>>> --
>>>>>> gosha bine
>>>>>> extended php parser ~http://code.google.com/p/pihipi
>>>>>> blok ~http://www.tagarga.com/blok-Hidequoted text -
>>>>>> - Show quoted text -
>>>>> These file paths are coming from a database, they are all windows
>>>>> paths and they reside on a company intranet so it is a "controlled"
>>>>> environment. Every file path is structured just like \\wusais\Intranets
>>>>> \Intranets\fpdb\pdf\weinig\00505882.pdf. For what I am trying to do, I
>>>>> have to double up on all of the slashes which is really being a pain.
>>>>> At this point, I believe I am going to try and explode the string to
>>>>> remove all the slashes and then reassemble it with the correct number
>>>>> of slashes.
>>>> This doesn't matter where the string comes from. The code I posted above
>>>> $var = strtr($var, array('\\' => '\\\\'));
>>>> should work for the strings coming from the database as well.
>>>> --
>>>> gosha bine
>>>> extended php parser ~http://code.google.com/p/pihipi
>>>> blok ~http://www.tagarga.com/blok-Hide quoted text -
>>>> - Show quoted text -
>>> the code:
>>> <?
>>> $var = "\\wusais\Intranets\Intranets\fpdb\pdf\weinig\00505882.pdf";
>>> echo strtr($var, array('\\' => '\\\\'));
>>> ?>
>>> produces this:
>>> \\wusais\\Intranets\\Intranets\\fpdb\\pdf\\weinig 05882.pdf
>>> close but the end is still killing me...
>> That's because your starting string is NOT VALID! See my post above.
>>
>> Get the string from the database and try parsing it. You'll get a much
>> different result.
>>
>> --
>> ==================
>> Remove the "x" from my email address
>> Jerry Stuckle
>> JDS Computer Training Corp.
>> jstuck...@attglobal.net
>> ==================- Hide quoted text -
>>
>> - Show quoted text -
>
> My problem is that the string coming from the database as variable
> with 2 slashes in the front and 1 slash between each directory. Once
> the variable comes from the db, I am passing it on to a javascript. If
> I pass the variable as is, the script will not work but if I double up
> on the slashes everything works fine. So, I have to take the file path
> that is coming out of the db and double up on the slashes. Using only
> php, everything works fine with the slashes the way they are.
>

Your problem is you don't understand that reading a string from the
database is NOT the same as entering the same data as a string in PHP.
Backslashes have a special meaning in PHP.

When read from a database, backslashes are backslashes. But when you
type them into a PHP string, they are escape characters. You have to
double them up to get a backslash in PHP.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация