1--TEST-- 2Test mb_encode_mimeheader() function : usage variations - Pass different data types to $indent arg 3--SKIPIF-- 4<?php 5extension_loaded('mbstring') or die('skip'); 6function_exists('mb_encode_mimeheader') or die("skip mb_encode_mimeheader() is not available in this build"); 7if (PHP_INT_SIZE != 8) die('skip 64-bit only'); 8?> 9--FILE-- 10<?php 11/* Prototype : string mb_encode_mimeheader 12 * (string $str [, string $charset [, string $transfer_encoding [, string $linefeed [, int $indent]]]]) 13 * Description: Converts the string to MIME "encoded-word" in the format of =?charset?(B|Q)?encoded_string?= 14 * Source code: ext/mbstring/mbstring.c 15 */ 16 17/* 18 * Pass different data types to $indent argument to see how mb_encode_mimeheader() behaves 19 */ 20 21echo "*** Testing mb_encode_mimeheader() : usage variations ***\n"; 22 23mb_internal_encoding('utf-8'); 24 25// Initialise function arguments not being substituted 26$str = base64_decode('zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg=='); 27$charset = 'utf-8'; 28$transfer_encoding = 'B'; 29$linefeed = "\r\n"; 30 31//get an unset variable 32$unset_var = 10; 33unset ($unset_var); 34 35// get a class 36class classA 37{ 38 public function __toString() { 39 return "Class A object"; 40 } 41} 42 43// heredoc string 44$heredoc = <<<EOT 45hello world 46EOT; 47 48// get a resource variable 49$fp = fopen(__FILE__, "r"); 50 51// unexpected values to be passed to $indent argument 52$inputs = array( 53 54 // int data 55/*1*/ 0, 56 1, 57 12345, 58 -2345, 59 60 // float data 61/*5*/ 10.5, 62 -10.5, 63 12.3456789000e10, 64 12.3456789000E-10, 65 .5, 66 67 // null data 68/*10*/ NULL, 69 null, 70 71 // boolean data 72/*12*/ true, 73 false, 74 TRUE, 75 FALSE, 76 77 // empty data 78/*16*/ "", 79 '', 80 81 // string data 82/*18*/ "string", 83 'string', 84 $heredoc, 85 86 // object data 87/*21*/ new classA(), 88 89 // undefined data 90/*22*/ @$undefined_var, 91 92 // unset data 93/*23*/ @$unset_var, 94 95 // resource variable 96/*24*/ $fp 97); 98 99// loop through each element of $inputs to check the behavior of mb_encode_mimeheader() 100$iterator = 1; 101foreach($inputs as $input) { 102 echo "\n-- Iteration $iterator --\n"; 103 var_dump( mb_encode_mimeheader($str, $charset, $transfer_encoding, $linefeed, $input)); 104 $iterator++; 105}; 106 107fclose($fp); 108 109echo "Done"; 110?> 111--EXPECTF-- 112*** Testing mb_encode_mimeheader() : usage variations *** 113 114-- Iteration 1 -- 115string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 116 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 117 118-- Iteration 2 -- 119string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 120 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 121 122-- Iteration 3 -- 123string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 124 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 125 126-- Iteration 4 -- 127string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 128 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 129 130-- Iteration 5 -- 131string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66?= 132 =?UTF-8?B?zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 133 134-- Iteration 6 -- 135string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 136 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 137 138-- Iteration 7 -- 139string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 140 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 141 142-- Iteration 8 -- 143string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 144 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 145 146-- Iteration 9 -- 147string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 148 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 149 150-- Iteration 10 -- 151string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 152 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 153 154-- Iteration 11 -- 155string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 156 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 157 158-- Iteration 12 -- 159string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 160 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 161 162-- Iteration 13 -- 163string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 164 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 165 166-- Iteration 14 -- 167string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 168 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 169 170-- Iteration 15 -- 171string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 172 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 173 174-- Iteration 16 -- 175 176Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d 177NULL 178 179-- Iteration 17 -- 180 181Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d 182NULL 183 184-- Iteration 18 -- 185 186Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d 187NULL 188 189-- Iteration 19 -- 190 191Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d 192NULL 193 194-- Iteration 20 -- 195 196Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d 197NULL 198 199-- Iteration 21 -- 200 201Warning: mb_encode_mimeheader() expects parameter 5 to be integer, object given in %s on line %d 202NULL 203 204-- Iteration 22 -- 205string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 206 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 207 208-- Iteration 23 -- 209string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868?= 210 =?UTF-8?B?zrXOvc6/LiAwMTIzNDU2Nzg5Lg==?=" 211 212-- Iteration 24 -- 213 214Warning: mb_encode_mimeheader() expects parameter 5 to be integer, resource given in %s on line %d 215NULL 216Done 217