1--TEST--
2Test file_put_contents() function : usage variation - obscure filenames
3--CREDITS--
4Dave Kelsey <d_kelsey@uk.ibm.com>
5--SKIPIF--
6<?php
7if(substr(PHP_OS, 0, 3) == "WIN")
8  die("skip Not for Windows");
9?>
10--FILE--
11<?php
12/* Prototype  : int file_put_contents(string file, mixed data [, int flags [, resource context]])
13 * Description: Write/Create a file with contents data and return the number of bytes written
14 * Source code: ext/standard/file.c
15 * Alias to functions:
16 */
17
18echo "*** Testing file_put_contents() : usage variation ***\n";
19
20/* An array of filenames */
21$names_arr = array(
22  -1,
23  TRUE,
24  FALSE,
25  NULL,
26  "",
27  " ",
28  //this one also generates a java message rather than our own so we don't replicate php message
29  "\0",
30  array(),
31
32  //the next 2 generate java messages so we don't replicate the php messages
33  "/no/such/file/dir",
34  "php/php"
35
36);
37
38for( $i=0; $i<count($names_arr); $i++ ) {
39  echo "-- Iteration $i --\n";
40  $res = file_put_contents($names_arr[$i], "Some data");
41  if ($res !== false && $res != null) {
42     echo "$res bytes written to: $names_arr[$i]\n";
43     unlink($names_arr[$i]);
44  }
45  else {
46     echo "Failed to write data to: $names_arr[$i]\n";
47  }
48}
49
50echo "\n*** Done ***\n";
51?>
52--EXPECTF--
53*** Testing file_put_contents() : usage variation ***
54-- Iteration 0 --
559 bytes written to: -1
56-- Iteration 1 --
579 bytes written to: 1
58-- Iteration 2 --
59
60Warning: file_put_contents(): Filename cannot be empty in %s on line %d
61Failed to write data to:
62-- Iteration 3 --
63
64Warning: file_put_contents(): Filename cannot be empty in %s on line %d
65Failed to write data to:
66-- Iteration 4 --
67
68Warning: file_put_contents(): Filename cannot be empty in %s on line %d
69Failed to write data to:
70-- Iteration 5 --
719 bytes written to:
72-- Iteration 6 --
73Failed to write data to: �
74-- Iteration 7 --
75
76Warning: file_put_contents() expects parameter 1 to be string, array given in %s on line %d
77Failed to write data to: Array
78-- Iteration 8 --
79
80Warning: file_put_contents(%sdir): failed to open stream: %s in %s on line %d
81Failed to write data to: %sdir
82-- Iteration 9 --
83
84Warning: file_put_contents(%sphp): failed to open stream: %s in %s on line %d
85Failed to write data to: %sphp
86
87*** Done ***
88
89