Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHP で form-data を POST 以外のメソッドで受け取るには?

Avatar for SAW SAW
October 23, 2025

PHP で form-data を POST 以外のメソッドで受け取るには?

第48回関西PHP勉強会 の発表資料です。

Avatar for SAW

SAW

October 23, 2025
Tweet

More Decks by SAW

Other Decks in Programming

Transcript

  1. ୈճؔ੢1)1ษڧձ $(whoami) w ࢯ໊Ճ౻फҰ࿠ ࡀ  w ϋϯυϧωʔϜ4"8 w 9

    چ5XJUUFS !B[VLJ@FBUFS w ؔ੢ͷ*5ΤϯδχΞίϛϡχςΟͷ೐΍͔͠ ࣗশ  w େࡕࡏॅɾѪ஌ग़਎ w ಘҙ෼໺8FCΞϓϦέʔγϣϯ։ൃ w -BSBWFM 7VF w ॴଐ༗ݶձࣾΞϦ΢ʔϓ  8FCαΠτͷʮεϙϯαʔυϦϯΫʯΛ 4QPOTPS%SJOLͩͱࢥ͍ͬͯͨਓ͸ গͳ͘ͳ͍͸ͣ ຊ೔ͷ໎ݴ
  2. ୈճؔ੢1)1ษڧձ ղੳલͷϦΫΤετϘσΟ php://input  $reqBody = file_get_contents( 'php://input' ); echo

    $reqBody; 1"5$)ͰGPSNEBUBΛૹ৴ ը૾σʔλ͸$POUFO5ZQFͷԼʹ ϑΝΠϧͷόΠφϦ͕ೖ͍ͬͯΔ GPSNEBUBͷLFZWBMVF͚ͩͰͳ͘ GPSNEBUBͷCPVOEBSZ΋ؚ·ΕΔ
  3. ୈճؔ੢1)1ษڧձ request_parse_body() w 1045Ҏ֎ͷϦΫΤετϘσΟΛղੳ w 1)1͔Β௥Ճ w ҎԼͷContent-TypeϔομͷϦΫΤετϘσΟΛղੳ • application/x-www-form-urlencoded

    • multipart/form-data w ղੳ݁ՌΛҎԼͷཁૉͰߏ੒͞ΕΔ഑ྻͰฦ٫ w ൪໨ͷཁૉ$_POSTʹ૬౰͢Δ഑ྻ w ൪໨ͷཁૉ$_FILESʹ૬౰͢Δ഑ྻ 
  4. ୈճؔ੢1)1ษڧձ 1"5$)Ͱrequest_parse_body()  [$reqBody, $fileData] = request_parse_body(); echo json_encode([ 'Request

    Body' => $reqBody, 'File Data' => $fileData, '_POST' => $_POST, '_FILES' => $_FILES, ]); 1"5$)ͰGPSNEBUBΛૹ৴ GPSNEBUBͷϑΝΠϧσʔλ͕ ֨ೲ͞Ε͍ͯΔ GPSNEBUBͷςΩετσʔλ͕ ֨ೲ͞Ε͍ͯΔ @1045ͱ@'*-&4͸ۭ
  5. ୈճؔ੢1)1ษڧձ 1045Ͱrequest_parse_body()  1045ͰGPSNEBUBΛૹ৴ 1045ͷ৔߹͸ SFRVFTU@QBSTF@CPEZ ͷղੳ݁Ռ͸ ۭ @1045ʹGPSNEBUBͷ ςΩετσʔλ͕֨ೲ͞Ε͍ͯΔ

    @'*-&4ʹGPSNEBUBͷ ςΩετσʔλ͕֨ೲ͞Ε͍ͯΔ [$reqBody, $fileData] = request_parse_body(); echo json_encode([ 'Request Body' => $reqBody, 'File Data' => $fileData, '_POST' => $_POST, '_FILES' => $_FILES, ]);
  6. ୈճؔ੢1)1ษڧձ ݱஈ֊Ͱͷղܾํ๏ w ແ೉ʹGPSNEBUB͸1045Ͱड͚औΔ w -BSBWFMͷRequestΦϒδΣΫτͷػೳ͕࢖͑Δ w FormRequestΛਖ਼ৗʹར༻Մೳ w ͱʹ͔͘γϯϓϧͳํ๏

    w Ͳ͏ͯ͠΋"1*ଆ͸1045Ҏ֎Ͱఆ͍ٛͨ͠৔߹ w GPSNEBUBʹ_methodͱ͍͏ϑΟʔϧυΛ௥Ճͯ͠)551ϝιουΛࢦఆ w FHname="_method" value="PUT" w GPSNEBUBΛૹ৴͢Δଆ͸1045Ͱૹ৴ w ݁ہ1045ͷ"1*ͳͷͰ͸ 
  7. ୈճؔ੢1)1ษڧձ ͦ΋ͦ΋GPSNEBUBͬͯ w ݩʑ͸)5.-ͷϑΥʔϜ͔Βૹ৴ w )5.-ͷformλάͷmethodͰ͸(&5·ͨ͸1045 w 165΍1"5$)ͳͲͷϝιου͸ڐՄ͞Ε͍ͯͳ͍ w 3'$Ͱ͸൚༻తʹར༻Ͱ͖ΔΑ͏ʹGPSNEBUBͷจ๏Λఆٛ

    w )5.-ͷformλάҎ֎͔ΒͰ΋ར༻Մೳ w 1045Ҏ֎ͰGPSNEBUBΛ؆୯ʹѻ͑ͳ͍ͷ͸1)1͕ѱ͍Θ͚Ͱ͸ͳ͍ w 4ZNGPOZͰ1"5$)΍165ͳͲͰGPSNEBUBΛղੳ͢Δ13͕NFSHFࡁΈ w IUUQTHJUIVCDPNTZNGPOZTZNGPOZQVMM w কདྷతʹ-BSBWFM΋௥ͬͯ1"5$)΍165ͳͲͰGPSNEBUB͕ѻ͑ΔΑ͏ʹͳΔ͔΋