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