1--TEST-- 2Whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly") 3--FILE-- 4<?php 5function decode($json) { 6 var_dump(json_decode($json)); 7 var_dump(json_last_error() !== 0); 8 echo "\n"; 9} 10 11// Leading whitespace should be ignored 12decode(" true"); 13decode("\ttrue"); 14decode("\ntrue"); 15decode("\rtrue"); 16 17// So should trailing whitespace 18decode("true "); 19decode("true\t"); 20decode("true\n"); 21decode("true\r"); 22 23// And so should the combination of both 24decode(" true "); 25decode(" true\t"); 26decode(" true\n"); 27decode(" true\r"); 28decode("\ttrue "); 29decode("\ttrue\t"); 30decode("\ttrue\n"); 31decode("\ttrue\r"); 32decode("\ntrue "); 33decode("\ntrue\t"); 34decode("\ntrue\n"); 35decode("\ntrue\r"); 36decode("\rtrue "); 37decode("\rtrue\t"); 38decode("\rtrue\n"); 39decode("\rtrue\r"); 40 41echo "Done\n"; 42?> 43--EXPECT-- 44bool(true) 45bool(false) 46 47bool(true) 48bool(false) 49 50bool(true) 51bool(false) 52 53bool(true) 54bool(false) 55 56bool(true) 57bool(false) 58 59bool(true) 60bool(false) 61 62bool(true) 63bool(false) 64 65bool(true) 66bool(false) 67 68bool(true) 69bool(false) 70 71bool(true) 72bool(false) 73 74bool(true) 75bool(false) 76 77bool(true) 78bool(false) 79 80bool(true) 81bool(false) 82 83bool(true) 84bool(false) 85 86bool(true) 87bool(false) 88 89bool(true) 90bool(false) 91 92bool(true) 93bool(false) 94 95bool(true) 96bool(false) 97 98bool(true) 99bool(false) 100 101bool(true) 102bool(false) 103 104bool(true) 105bool(false) 106 107bool(true) 108bool(false) 109 110bool(true) 111bool(false) 112 113bool(true) 114bool(false) 115 116Done 117