php-windows Digest 25 Oct 2007 17:03:52 -0000 Issue 3360
Topics (messages 28582 through 28584):
Re: fopen on windows shared, error: failed to open stream
28582 by: Louie Miranda
28583 by: Mazzu
28584 by: Niel Archer
Administrivia:
To subscribe to the digest, e-mail:
[EMAIL PROTECTED]
To unsubscribe from the digest, e-mail:
[EMAIL PROTECTED]
To post to the list, e-mail:
[EMAIL PROTECTED]
----------------------------------------------------------------------
--- Begin Message ---
After seeing this:
http://bugs.php.net/bug.php?id=25805
I think i know what the problem is.
Louie
On 10/25/07, Louie Miranda <[EMAIL PROTECTED]> wrote:
>
> Tried both..
>
> Use forward slashes for paths inside double quotes,
> fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session . ".xml",
> "w");
> escape the backslashes themselves
>
> fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
> "w");
> or single quotes
> fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session . '.xml',
> "w");
>
> But, PHP is still giving me
> [function.fopen]: failed to open stream: Invalid argument in
>
> This might be a bug? It looks simple, but what is the exact point when it
> says "failed to open stream?"
>
> Louie
>
> On 10/24/07, Niel Archer <[EMAIL PROTECTED]> wrote:
> >
> > > I have this error when ever i try to save an xml file over a windows
> > shared
> > > folder
> > >
> > > *Warning*:
> > >
> > fopen(\\192.168.10.2\businesscard\XML\afbf7d1fb318054a5ba3e9d4cca0af.xml) [
> > > function.fopen]: failed to open stream: Invalid argument in *
> > > E:\\businesscard\create.php* on line *663*
> > >
> > > my code:
> > > $createXML =
> > > fopen("\\\\192.168.10.2\businesscard\XML\".$xml_uniq_session.".xml",
> > "w");
> > > $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"
> > standalone=\"yes\"?>\r\n";
> > > ....
> > > fwrite($createXML, $_xml, strlen($createXML));
> > > fclose($createXML);
> > >
> > > What could be the problem?
> >
> > Your path is probably invalid as backslashes are escapes inside double
> > quotes. So the single backslashes act as escapes on the following
> > character, which results in no separation between directories.
> > Workarounds include:
> > Use forward slashes for paths inside double quotes,
> > fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session .
> > ".xml", "w");
> > escape the backslashes themselves
> >
> > fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
> > "w");
> > or single quotes
> > fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session .
> > '.xml', "w");
> >
> > --
> > Niel Archer
> >
> > --
> > PHP Windows Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
>
> --
> Louie Miranda ([EMAIL PROTECTED])
> http://www.axishift.com
>
> Security Is A Series Of Well-Defined Steps
> chmod -R 0 / ; and smile :)
>
--
Louie Miranda ([EMAIL PROTECTED])
http://www.axishift.com
Security Is A Series Of Well-Defined Steps
chmod -R 0 / ; and smile :)
--- End Message ---
--- Begin Message ---
Have you try to test whether the file is available or not ?
Maybe you should try somehting like this :
$xml_file = '\\\\192.168.10.2\\businesscard\\XML\\'.$xml_uniq_session.'.xml';
if (!file_exists($xml_file)) {
exit('File '.$xml_file.' does not exists or is unavailable');
} elseif (!is_file($xml_file)) {
exit('File '.$xml_file.' is not a regular file');
} elseif (!is_writable($xml_file)) {
exit('File '.$xml_file.' is not writable');
} else {
fopen($xml_file,'w');
}
"Louie Miranda" <[EMAIL PROTECTED]> wrote:
> ------=_Part_1751_31891645.1193269490157
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> Tried both..
>
> Use forward slashes for paths inside double quotes,
> fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session . ".xml",
> "w");
> escape the backslashes themselves
>
> fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
> "w");
> or single quotes
> fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session . '.xml',
> "w");
>
> But, PHP is still giving me
> [function.fopen]: failed to open stream: Invalid argument in
>
> This might be a bug? It looks simple, but what is the exact point when it
> says "failed to open stream?"
>
> Louie
>
> On 10/24/07, Niel Archer <[EMAIL PROTECTED]> wrote:
>>
>> > I have this error when ever i try to save an xml file over a windows
>> shared
>> > folder
>> >
>> > *Warning*:
>> >
>> fopen(\\192.168.10.2\businesscard\XML\afbf7d1fb318054a5ba3e9d4cca0af.xml) [
>> > function.fopen]: failed to open stream: Invalid argument in *
>> > E:\\businesscard\create.php* on line *663*
>> >
>> > my code:
>> > $createXML =
>> > fopen("\\\\192.168.10.2\businesscard\XML\".$xml_uniq_session.".xml",
>> "w");
>> > $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"
>> standalone=\"yes\"?>\r\n";
>> > ....
>> > fwrite($createXML, $_xml, strlen($createXML));
>> > fclose($createXML);
>> >
>> > What could be the problem?
>>
>> Your path is probably invalid as backslashes are escapes inside double
>> quotes. So the single backslashes act as escapes on the following
>> character, which results in no separation between directories.
>> Workarounds include:
>> Use forward slashes for paths inside double quotes,
>> fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session .
>> ".xml", "w");
>> escape the backslashes themselves
>>
>> fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
>> "w");
>> or single quotes
>> fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session .
>> '.xml', "w");
>>
>> --
>> Niel Archer
>>
>> --
>> PHP Windows Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
>
--- End Message ---
--- Begin Message ---
Hi Louie
I've tried using both a mapped network drive and the UNC path syntax.
Both work perfectly for me, although I only tried reading, not writing.
Which version of PHP are you using. I'm not sure if versions before 5.0
handle shares at all.
I checked the bug entry you cited, did you read the final entry in it
which describes why it is a permission problem and not a bug? It also
gives advice on how to work around the problem.
--
Niel Archer
--- End Message ---