あの日見たバグを僕達はまだ公式ドキュメントで見れない / The bug we saw that day

あの日見たバグを僕達はまだ公式ドキュメントで見れない / The bug we saw that day

2017/01/31 PHP 勉強会 での LT 資料です

D8fb02b13755bda3ce991f198c42523a?s=128

Yoshihide TANIGUCHI

January 31, 2017
Tweet

Transcript

  1. ୩ޱఓӳ!SBWFMMM ͋ͷ೔ݟͨόάͷৄࡉΛ ๻ୡ͸·ͩ ެࣜυΩϡϝϯτͰ ݟΕͳ͍

  2. ࡢ೔ͷൃදʹͯ

  3. ్த1)1ͷόάΛ౿Ή IUUQTTQFBLFSEFDLDPNHTUIFCVHXFTBXUIBUEBZ

  4. ͦͷ࿩Λ͠·͢

  5. ୩ޱఓӳ@ravelll

  6. wΞϓϦέʔγϣϯͷػೳ։ൃ wΞϓϦέʔγϣϯج൫ͷอक w։ൃج൫ͷվળ &$ج൫νʔϜ Χϥʔϛʔγϣοϓάϧʔϓ

  7. ͋Εͬ͜ͷػೳಈ͔ͳ͍ʜ wϖʔδʹΞΫηεͨ͠ΒඇಉظʹσʔλΛऔಘɾඳը w"KBYͰ(&5ͯ͠KTPOड͚औͬͯඳը wKTPOऔಘ࣌ʹ1)1ଆͰΤϥʔ͕ग़͍ͯͨ •PHP Warning: mb_convert_variables(): Cannot handle recursive

    references in ʙ
  8. 1)1ͷόʔδϣϯΞοϓΛ΍͍ͬͯͨ w͋Δ8FCΞϓϦέʔγϣϯͷϩʔϧ $ wc -l $(find . -name \*.php) |

    tail -1 
 325048 total w1)11)1 wίʔυमਖ਼͕΄΅΄΅׬ྃɺಈ࡞ݕূΛ͍ͯͨ͠
  9. ͋Εͬ͜ͷػೳಈ͔ͳ͍ʜ wϖʔδʹΞΫηεͨ͠ΒඇಉظʹσʔλΛऔಘɾඳը w"KBYͰ(&5ͯ͠KTPOड͚औͬͯඳը wKTPOऔಘ࣌ʹ1)1ଆͰΤϥʔ͕ग़͍ͯͨ •PHP Warning: mb_convert_variables(): Cannot handle recursive

    references in ʙ
  10. mb_convert_variables()

  11. NC@DPOWFSU@WBSJBCMFT ͱ͸ʁ wม਺ͷ஋ͷΤϯίʔσΟϯάΛม׵͢Δؔ਺ ex) mb_convert_variables(‘UTF-8’, ’EUC-JP’, $var); w$varʹ͸4USJOH "SSBZ 0CKFDUΛ౉ͤΔ

    wNC@DPOWFSU@FODPEJOHͱҾ਺ͷॱ͕ҧ͏ʢ͔Θ͍͍ʣ mb_convert_variables($to_enc, $from_enc, $var); mb_convert_encoding($str, $to_enc[, $from_enc]);
  12. Cannot handle recursive references in …

  13. Cannot handle recursive references in …

  14. SFDVSTJWFͳSFGFSFODFTʁ

  15. wͦΜͳ഑ྻ͸౉͍ͯ͠ͳ͍ͧʜʁ wͱ͍͏͔ [‘a’, ‘b’] Ͱ͢Βಉ͡ΤϥʔʹͳΔͧʁʁʁ ‎Ͳ͔͜ͷόʔδϣϯͰ࢓༷͕มΘͬͨʹҧ͍ͳ͍ʂ
 ެࣜυΩϡϝϯτΛಡ΋͏ʂʂ

  16. None
  17. ಛʹݴٴ͞Εͯͳ͍

  18. ΢ʔϜࠔͬͨʜ wόʔδϣϯΞοϓલޙͰ1)1ͷιʔεΛಡΈൺ΂ͯΈͨ΋ͷͷ
 $ݴޠྗ͕௿ͯ͘࠶ؼࢀরΛݕ஌͢Δ࢓૊Έ͕૿͑ͯΔ͜ͱҎ֎Α ͘෼͔Βͳ͍ʜ wNC@DPOWFSU@FODPEJOHؔ਺Λ࢖͏Α͏ʹΞϓϦέʔγϣϯͷ࣮૷ Λ௚͍͔ͯ͘͠͠ͳ͍ͷ͔ʜ͍΍Ͱ΋݁ߏ࢖ͬͯΔͱ͜Ζ͋Δʜ

  19. None
  20. None
  21. Ξοοο

  22. ؔ਺ͷόάͩͬͨ໛༷ ‣ୈҾ਺ʢม׵ݩͷΤϯίʔσΟϯάʣʹͭҎ্ͷΤϯίʔσΟϯ άΛࢦఆͨ͠ͱ͖ɺม׵ର৅ͷ"SSBZͷ࠶ؼతࢀরͷݕ͕ࠪਖ਼ৗʹ Ͱ͖ͳ͍ ex) mb_convert_variables(‘UTF-8’, ‘EUC-JP,Shift_JIS’, $val); mb_convert_variables(‘UTF-8’, ‘auto’,

    $val); (‘auto’ ͸ΤΠϦΞεͰɺmbstring.language=Japanese
 ͷͱ͖ͳΒ ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’)
  23. मਖ਼ϓϧϦΫग़ͯͨʢʣ ‣·͞ʹɺͳςετ͕௥Ճ͞Ε͍ͯͨʜʂ

  24. ରԠ wόά͕ੜ·ΕΔ௚લͷόʔδϣϯʢʣΛ࢖͏͜ͱʹͨ͠ w΋͏1)1ܥ΋"DUJWF4VQQPSUͰͳ͘ͳΓେ͖ͳػೳ௥ Ճ͕ͳ͍ wࠓؤுͬͯͱ͔ʹ͢ΔΑΓ͸9ʹ͢΂͘ؤுͬͨ ΄͏͕Α͍ͷͰ͸ʜʁ

  25. ·ͱΊ wόʔδϣϯΞοϓதʹݴޠͷόάͱग़ձͬͨ࿩Λڞ༗͠·ͨ͠ wNC@DPOWFSU@WBSJBCMFTͰϋϚͬͨ wݪҼ͕υΩϡϝϯτʹॻ͔Εͯͳ͔ͬͨ
 ʢݴٴͨ͠Ϣʔβίϝϯτ͸͋ͬͨʣ wؔ਺ࣗମʹόά͕͋Δ͜ͱ͕෼͔ͬͨ w1)1Λ࢖͏͜ͱͰҰ୴ճආͨ͠

  26. ͦͷޙ

  27. ϩʔϧͷશ୆͕1)1ʹ w࠷ॳͷ13Λग़͔ͯ͠Βϱ݄ wରԠʹग़ͨ͠13㲈ݸ

  28. ύϑΥʔϚϯε

  29. None
  30. None
  31. None
  32. None
  33. MPPLT͍͍͡ΌΜ wϐʔΫ࣌ͷϨεϙϯελΠϜ͕๲Εͳ͘ͳͬͨ wϝϞϦফඅ૿ w1)1ʹظ଴

  34. ·ͱΊ w1)1ʹόʔδϣϯΞοϓͨ͠ wεϧʔϓοτ͕޲্͢Δ͜ͱ͸΄ͱΜͲͳ͔ͬͨ wϐʔΫλΠϜͷϨεϙϯε஗Ԇ͕ղফ͞Εͨ