質問編集履歴

1

dumpのテスト結果を追記しました。

2017/01/04 21:02

投稿

tajix_japan
tajix_japan

スコア132

test CHANGED
File without changes
test CHANGED
@@ -431,3 +431,193 @@
431
431
 
432
432
 
433
433
  よろしくお願いいたします。
434
+
435
+
436
+
437
+
438
+
439
+ 追記
440
+
441
+ >$newphrase に代入したすぐ後の var_dump を採って追記いただけますか?
442
+
443
+
444
+
445
+ kei344様
446
+
447
+ 有難うございます。
448
+
449
+
450
+
451
+ $_REQUEST['user_type']の部分を$type = 'a';とリクエストを受け取った形に変形してテストしました。
452
+
453
+
454
+
455
+ ```php
456
+
457
+
458
+
459
+ //$type = $_REQUEST['user_type'];
460
+
461
+
462
+
463
+ $type = 'a';
464
+
465
+
466
+
467
+ // ユーザリストの初期化
468
+
469
+ $user_list = [];
470
+
471
+ // 返却値の初期化
472
+
473
+ $result = [];
474
+
475
+
476
+
477
+ try {
478
+
479
+ // 値の検証
480
+
481
+ if (empty($type)) {
482
+
483
+ throw new Exception("no type...");
484
+
485
+ }
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+ // ユーザリストの作成
494
+
495
+ switch ($type) {
496
+
497
+ case 'a':
498
+
499
+ case 'admin':
500
+
501
+ $user_list =
502
+
503
+
504
+
505
+ [
506
+
507
+ $newphrase
508
+
509
+ ];
510
+
511
+ break;
512
+
513
+
514
+
515
+ var_dump($newphrase);
516
+
517
+
518
+
519
+ 以下同文
520
+
521
+
522
+
523
+ ```
524
+
525
+
526
+
527
+ と記載してみました。
528
+
529
+
530
+
531
+ 結果
532
+
533
+ {"result":"OK","users":[{"no":"1","name":"Yamada"},{"no":"2","name":"Tanaka"}]}
534
+
535
+
536
+
537
+ となるべきところが
538
+
539
+
540
+
541
+ {"result":"OK","users":["\ufeff[{"no":"1","name":"Yamada"},{"no":"2","name":"Tanaka"],"]}
542
+
543
+
544
+
545
+ と ["\ufeff 及び "] のへんてこな文字が混じっていることがわかりました。
546
+
547
+
548
+
549
+ \ufeffをググるとBOM付でこれが出ると書かれていたのですが、確認したところBOM付で記載してはいません。改行コードも自動判定からLFに変更しましたがやはり変化がありません。
550
+
551
+
552
+
553
+ (遅くなりましたが環境はCent OS 6.8です)
554
+
555
+
556
+
557
+
558
+
559
+ 当方は今回初めてAPIを作ることになるため、下記をベースに開発しています。
560
+
561
+ http://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47
562
+
563
+ ここのサンプルの標準で用意されている下記のcace 'g'を追記し
564
+
565
+ $_REQUEST['user_type']の部分を$type = 'g';としてテストしました。
566
+
567
+
568
+
569
+ ```php
570
+
571
+ case 'g':
572
+
573
+ case 'guest':
574
+
575
+ $user_list = [
576
+
577
+ ['name'=>'香取','age'=>14],
578
+
579
+ ['name'=>'草薙','age'=>15],
580
+
581
+ ['name'=>'稲垣','age'=>15],
582
+
583
+ ['name'=>'岡田','age'=>15],
584
+
585
+ ['name'=>'森田','age'=>15],
586
+
587
+ ['name'=>'三宅','age'=>15],
588
+
589
+ ['name'=>'長野','age'=>15],
590
+
591
+ ['name'=>'坂本','age'=>15],
592
+
593
+ ['name'=>'井ノ原','age'=>15]
594
+
595
+ ];
596
+
597
+ break;
598
+
599
+ default:
600
+
601
+
602
+
603
+
604
+
605
+ ```
606
+
607
+ 結果
608
+
609
+
610
+
611
+ {"result":"OK","users":[{"name":"\u9999\u53d6","age":14},{"name":"\u8349\u8599","age":15},{"name":"\u7a32\u57a3","age":15},{"name":"\u5ca1\u7530","age":15},{"name":"\u68ee\u7530","age":15},{"name":"\u4e09\u5b85","age":15},{"name":"\u9577\u91ce","age":15},{"name":"\u5742\u672c","age":15},{"name":"\u4e95\u30ce\u539f","age":15}]}
612
+
613
+
614
+
615
+ と普通にdump出来ます。
616
+
617
+
618
+
619
+ 上記のテストから$newphraseを代入するとゴミ文字が入ってくることで表示出来なくなっていることがわかりました。
620
+
621
+
622
+
623
+ もう一歩だと思いますので何かアドバイスできることがございましたらよろしくお願いいたします。