1--TEST-- 2iconv_mime_encode() 3--SKIPIF-- 4<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> 5--INI-- 6iconv.internal_charset=iso-8859-1 7--FILE-- 8<?php 9function my_error_handler($errno, $errmsg, $filename, $linenum, $vars) 10{ 11 echo "$errno: $errmsg\n"; 12} 13set_error_handler('my_error_handler'); 14$preference = array( 15 "scheme" => "B", 16 "output-charset" => "ISO-2022-JP", 17 "input-charset" => "EUC-JP", 18 "line-break-chars" => "\n" 19); 20for ($line_len= 0; $line_len < 80; ++$line_len) { 21 print "-------- line length=$line_len\n"; 22 $preference["line-length"] = $line_len; 23 $result = iconv_mime_encode("From", "����ץ�ʸ����ץ�ʸ�������ܸ�ƥ�����", $preference); 24 var_dump($result); 25 if ($result !== false) { 26 $max = max(array_map("strlen", explode("\n", $result))); 27 print "-------- "; 28 var_dump(($max <= $line_len)); 29 } else { 30 print "-------- \n"; 31 } 32} 33?> 34--EXPECTF-- 35-------- line length=0 362: %s 37bool(false) 38-------- 39-------- line length=1 402: %s 41bool(false) 42-------- 43-------- line length=2 442: %s 45bool(false) 46-------- 47-------- line length=3 482: %s 49bool(false) 50-------- 51-------- line length=4 522: %s 53bool(false) 54-------- 55-------- line length=5 562: %s 57bool(false) 58-------- 59-------- line length=6 602: %s 61bool(false) 62-------- 63-------- line length=7 642: %s 65bool(false) 66-------- 67-------- line length=8 682: %s 69bool(false) 70-------- 71-------- line length=9 722: %s 73bool(false) 74-------- 75-------- line length=10 762: %s 77bool(false) 78-------- 79-------- line length=11 802: %s 81bool(false) 82-------- 83-------- line length=12 842: %s 85bool(false) 86-------- 87-------- line length=13 882: %s 89bool(false) 90-------- 91-------- line length=14 922: %s 93bool(false) 94-------- 95-------- line length=15 962: %s 97bool(false) 98-------- 99-------- line length=16 1002: %s 101bool(false) 102-------- 103-------- line length=17 1042: %s 105bool(false) 106-------- 107-------- line length=18 1082: %s 109bool(false) 110-------- 111-------- line length=19 1122: %s 113bool(false) 114-------- 115-------- line length=20 1162: %s 117bool(false) 118-------- 119-------- line length=21 1202: %s 121bool(false) 122-------- 123-------- line length=22 1242: %s 125bool(false) 126-------- 127-------- line length=23 1282: %s 129bool(false) 130-------- 131-------- line length=24 1322: %s 133bool(false) 134-------- 135-------- line length=25 1362: %s 137bool(false) 138-------- 139-------- line length=26 1402: %s 141bool(false) 142-------- 143-------- line length=27 1442: %s 145bool(false) 146-------- 147-------- line length=28 1482: %s 149bool(false) 150-------- 151-------- line length=29 1522: %s 153bool(false) 154-------- 155-------- line length=30 1562: %s 157bool(false) 158-------- 159-------- line length=31 1602: %s 161bool(false) 162-------- 163-------- line length=32 1642: %s 165bool(false) 166-------- 167-------- line length=33 1682: %s 169bool(false) 170-------- 171-------- line length=34 1722: %s 173bool(false) 174-------- 175-------- line length=35 1762: %s 177bool(false) 178-------- 179-------- line length=36 180string(396) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= 181 =?ISO-2022-JP?B?GyRCJXMlVxsoQg==?= 182 =?ISO-2022-JP?B?GyRCJWtKOBsoQg==?= 183 =?ISO-2022-JP?B?GyRCO3pOcxsoQg==?= 184 =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 185 =?ISO-2022-JP?B?GyRCJVclaxsoQg==?= 186 =?ISO-2022-JP?B?GyRCSjg7ehsoQg==?= 187 =?ISO-2022-JP?B?GyRCTnNGfBsoQg==?= 188 =?ISO-2022-JP?B?GyRCS1w4bBsoQg==?= 189 =?ISO-2022-JP?B?GyRCJUYlLRsoQg==?= 190 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 191-------- bool(true) 192-------- line length=37 193string(396) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= 194 =?ISO-2022-JP?B?GyRCJXMlVxsoQg==?= 195 =?ISO-2022-JP?B?GyRCJWtKOBsoQg==?= 196 =?ISO-2022-JP?B?GyRCO3pOcxsoQg==?= 197 =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 198 =?ISO-2022-JP?B?GyRCJVclaxsoQg==?= 199 =?ISO-2022-JP?B?GyRCSjg7ehsoQg==?= 200 =?ISO-2022-JP?B?GyRCTnNGfBsoQg==?= 201 =?ISO-2022-JP?B?GyRCS1w4bBsoQg==?= 202 =?ISO-2022-JP?B?GyRCJUYlLRsoQg==?= 203 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 204-------- bool(true) 205-------- line length=38 206string(396) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= 207 =?ISO-2022-JP?B?GyRCJXMlVxsoQg==?= 208 =?ISO-2022-JP?B?GyRCJWtKOBsoQg==?= 209 =?ISO-2022-JP?B?GyRCO3pOcxsoQg==?= 210 =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 211 =?ISO-2022-JP?B?GyRCJVclaxsoQg==?= 212 =?ISO-2022-JP?B?GyRCSjg7ehsoQg==?= 213 =?ISO-2022-JP?B?GyRCTnNGfBsoQg==?= 214 =?ISO-2022-JP?B?GyRCS1w4bBsoQg==?= 215 =?ISO-2022-JP?B?GyRCJUYlLRsoQg==?= 216 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 217-------- bool(true) 218-------- line length=39 219string(236) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= 220 =?ISO-2022-JP?B?GyRCJXMlVyVrSjgbKEI=?= 221 =?ISO-2022-JP?B?GyRCO3pOcyU1JXMbKEI=?= 222 =?ISO-2022-JP?B?GyRCJVcla0o4O3obKEI=?= 223 =?ISO-2022-JP?B?GyRCTnNGfEtcOGwbKEI=?= 224 =?ISO-2022-JP?B?GyRCJUYlLSU5JUgbKEI=?=" 225-------- bool(true) 226-------- line length=40 227string(236) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 228 =?ISO-2022-JP?B?GyRCJVcla0o4O3obKEI=?= 229 =?ISO-2022-JP?B?GyRCTnMlNSVzJVcbKEI=?= 230 =?ISO-2022-JP?B?GyRCJWtKODt6TnMbKEI=?= 231 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYbKEI=?= 232 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 233-------- bool(true) 234-------- line length=41 235string(236) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 236 =?ISO-2022-JP?B?GyRCJVcla0o4O3obKEI=?= 237 =?ISO-2022-JP?B?GyRCTnMlNSVzJVcbKEI=?= 238 =?ISO-2022-JP?B?GyRCJWtKODt6TnMbKEI=?= 239 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYbKEI=?= 240 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 241-------- bool(true) 242-------- line length=42 243string(236) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 244 =?ISO-2022-JP?B?GyRCJVcla0o4O3obKEI=?= 245 =?ISO-2022-JP?B?GyRCTnMlNSVzJVcbKEI=?= 246 =?ISO-2022-JP?B?GyRCJWtKODt6TnMbKEI=?= 247 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYbKEI=?= 248 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 249-------- bool(true) 250-------- line length=43 251string(212) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= 252 =?ISO-2022-JP?B?GyRCJVcla0o4O3pOcxsoQg==?= 253 =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= 254 =?ISO-2022-JP?B?GyRCO3pOc0Z8S1w4bBsoQg==?= 255 =?ISO-2022-JP?B?GyRCJUYlLSU5JUgbKEI=?=" 256-------- bool(true) 257-------- line length=44 258string(212) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= 259 =?ISO-2022-JP?B?GyRCSjg7ek5zJTUlcxsoQg==?= 260 =?ISO-2022-JP?B?GyRCJVcla0o4O3pOcxsoQg==?= 261 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLRsoQg==?= 262 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 263-------- bool(true) 264-------- line length=45 265string(212) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= 266 =?ISO-2022-JP?B?GyRCSjg7ek5zJTUlcxsoQg==?= 267 =?ISO-2022-JP?B?GyRCJVcla0o4O3pOcxsoQg==?= 268 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLRsoQg==?= 269 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 270-------- bool(true) 271-------- line length=46 272string(212) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= 273 =?ISO-2022-JP?B?GyRCSjg7ek5zJTUlcxsoQg==?= 274 =?ISO-2022-JP?B?GyRCJVcla0o4O3pOcxsoQg==?= 275 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLRsoQg==?= 276 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 277-------- bool(true) 278-------- line length=47 279string(176) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= 280 =?ISO-2022-JP?B?GyRCSjg7ek5zJTUlcyVXJWsbKEI=?= 281 =?ISO-2022-JP?B?GyRCSjg7ek5zRnxLXDhsJUYbKEI=?= 282 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 283-------- bool(true) 284-------- line length=48 285string(180) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= 286 =?ISO-2022-JP?B?GyRCO3pOcyU1JXMlVyVrSjgbKEI=?= 287 =?ISO-2022-JP?B?GyRCO3pOc0Z8S1w4bCVGJS0bKEI=?= 288 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 289-------- bool(true) 290-------- line length=49 291string(180) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= 292 =?ISO-2022-JP?B?GyRCO3pOcyU1JXMlVyVrSjgbKEI=?= 293 =?ISO-2022-JP?B?GyRCO3pOc0Z8S1w4bCVGJS0bKEI=?= 294 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 295-------- bool(true) 296-------- line length=50 297string(180) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= 298 =?ISO-2022-JP?B?GyRCO3pOcyU1JXMlVyVrSjgbKEI=?= 299 =?ISO-2022-JP?B?GyRCO3pOc0Z8S1w4bCVGJS0bKEI=?= 300 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 301-------- bool(true) 302-------- line length=51 303string(152) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= 304 =?ISO-2022-JP?B?GyRCO3pOcyU1JXMlVyVrSjg7ehsoQg==?= 305 =?ISO-2022-JP?B?GyRCTnNGfEtcOGwlRiUtJTklSBsoQg==?=" 306-------- bool(true) 307-------- line length=52 308string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= 309 =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnNGfBsoQg==?= 310 =?ISO-2022-JP?B?GyRCS1w4bCVGJS0lOSVIGyhC?=" 311-------- bool(true) 312-------- line length=53 313string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= 314 =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnNGfBsoQg==?= 315 =?ISO-2022-JP?B?GyRCS1w4bCVGJS0lOSVIGyhC?=" 316-------- bool(true) 317-------- line length=54 318string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= 319 =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnNGfBsoQg==?= 320 =?ISO-2022-JP?B?GyRCS1w4bCVGJS0lOSVIGyhC?=" 321-------- bool(true) 322-------- line length=55 323string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= 324 =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnNGfEtcOGwbKEI=?= 325 =?ISO-2022-JP?B?GyRCJUYlLSU5JUgbKEI=?=" 326-------- bool(true) 327-------- line length=56 328string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= 329 =?ISO-2022-JP?B?GyRCJXMlVyVrSjg7ek5zRnxLXDhsJUYbKEI=?= 330 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 331-------- bool(true) 332-------- line length=57 333string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= 334 =?ISO-2022-JP?B?GyRCJXMlVyVrSjg7ek5zRnxLXDhsJUYbKEI=?= 335 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 336-------- bool(true) 337-------- line length=58 338string(148) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= 339 =?ISO-2022-JP?B?GyRCJXMlVyVrSjg7ek5zRnxLXDhsJUYbKEI=?= 340 =?ISO-2022-JP?B?GyRCJS0lOSVIGyhC?=" 341-------- bool(true) 342-------- line length=59 343string(152) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= 344 =?ISO-2022-JP?B?GyRCJXMlVyVrSjg7ek5zRnxLXDhsJUYlLRsoQg==?= 345 =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=" 346-------- bool(true) 347-------- line length=60 348string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= 349 =?ISO-2022-JP?B?GyRCJWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" 350-------- bool(true) 351-------- line length=61 352string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= 353 =?ISO-2022-JP?B?GyRCJWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" 354-------- bool(true) 355-------- line length=62 356string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= 357 =?ISO-2022-JP?B?GyRCJWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" 358-------- bool(true) 359-------- line length=63 360string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= 361 =?ISO-2022-JP?B?GyRCJWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" 362-------- bool(true) 363-------- line length=64 364string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= 365 =?ISO-2022-JP?B?GyRCSjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" 366-------- bool(true) 367-------- line length=65 368string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= 369 =?ISO-2022-JP?B?GyRCSjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" 370-------- bool(true) 371-------- line length=66 372string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= 373 =?ISO-2022-JP?B?GyRCSjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" 374-------- bool(true) 375-------- line length=67 376string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= 377 =?ISO-2022-JP?B?GyRCSjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" 378-------- bool(true) 379-------- line length=68 380string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= 381 =?ISO-2022-JP?B?GyRCTnNGfEtcOGwlRiUtJTklSBsoQg==?=" 382-------- bool(true) 383-------- line length=69 384string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= 385 =?ISO-2022-JP?B?GyRCTnNGfEtcOGwlRiUtJTklSBsoQg==?=" 386-------- bool(true) 387-------- line length=70 388string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= 389 =?ISO-2022-JP?B?GyRCTnNGfEtcOGwlRiUtJTklSBsoQg==?=" 390-------- bool(true) 391-------- line length=71 392string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= 393 =?ISO-2022-JP?B?GyRCTnNGfEtcOGwlRiUtJTklSBsoQg==?=" 394-------- bool(true) 395-------- line length=72 396string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= 397 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLSU5JUgbKEI=?=" 398-------- bool(true) 399-------- line length=73 400string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= 401 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLSU5JUgbKEI=?=" 402-------- bool(true) 403-------- line length=74 404string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= 405 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLSU5JUgbKEI=?=" 406-------- bool(true) 407-------- line length=75 408string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= 409 =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlLSU5JUgbKEI=?=" 410-------- bool(true) 411-------- line length=76 412string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= 413 =?ISO-2022-JP?B?GyRCOGwlRiUtJTklSBsoQg==?=" 414-------- bool(true) 415-------- line length=77 416string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= 417 =?ISO-2022-JP?B?GyRCOGwlRiUtJTklSBsoQg==?=" 418-------- bool(true) 419-------- line length=78 420string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= 421 =?ISO-2022-JP?B?GyRCOGwlRiUtJTklSBsoQg==?=" 422-------- bool(true) 423-------- line length=79 424string(120) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= 425 =?ISO-2022-JP?B?GyRCOGwlRiUtJTklSBsoQg==?=" 426-------- bool(true) 427