• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP 文字列から必要な部分を抜き出したい)

PHP 文字列から必要な部分を抜き出す方法

このQ&Aのポイント
  • この記事では、PHPを使用して文字列から必要な部分を抜き出す方法について説明します。
  • 具体的には、与えられた文字列から「TransactionId」や「TransactionDate」などの情報を抜き出す方法を解説します。
  • また、可変の桁数に対応するために、正規表現を使用して文字列を処理する方法も紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんな感じ? <? $str=<<<eof HTTP/1.1 200 OK Date: Fri, 29 Oct 2010 03:23:55 GMT Server: Apache Content-Length: 111 Connection: close Content-Type: text/plain; charset=UTF-8 TransactionId=000000020513&TransactionDate=20101029&OperateId=1Auth&MerchantFree1=20101029000001&ResponseCd=G65 eof; $pattern="/(TransactionId|TransactionDate|OperateId|MerchantFree1|ResponseCd)=(.+?)(?:&|$)/"; preg_match_all($pattern,$str,$match); print "<pre>"; print_r($match); print "</pre>"; ?>

jipang5054
質問者

お礼

ご教授ありがとうございました。 質問後、別件でばたばたしており、連絡が遅くなってしまい失礼しました。 先ほど試してみたところ、バッチリでした。 正規表現は難しいですね? 大変助かりました。 ありがとうございました。

その他の回答 (1)

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.2

$response = 'HTTP/1.1 200 OK...'; $param = parse_str(strstr("\r\n\r\n", $response)); // まれにヘッダをLF(\n) のみで区切ってあるやつがあるが、そんなやつは知らん。 又は、http://jp2.php.net/manual/ja/book.http.php あ~ text/plain で渡された場合は、parse_str は使えないので、地味に mb_ 関数で。 というか、解析できるかどうかすら危うい。 application/x-www-form-urlencoded で渡されて解析できない場合は、遠慮なく 400 を返してやればいい。

jipang5054
質問者

お礼

ご教授ありがとうございました。 質問後、別件でばたばたしており、連絡が遅くなってしまい失礼しました。 大変参考になりました。 ありがとうございました。