PHP 文字列から必要な部分を抜き出したい
こんにちは。
PHP初心者です。(PHP5使用)
実はある文字列から必要な部分を抜き出したいのですが、方法を教えていただけないでしょうか?
文字列:
"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"
と、ちょっと複雑ですが、この文字列から、
・TransactionId=000000020513
・TransactionDate=20101029
・OperateId=1Auth
・MerchantFree1=20101029000001
・ResponseCd=G65
の=以下の部分をそれぞれ抜き出したいです。
例えば「TransactionId」を検索して「000000020513」を抜き出すとか。
それぞれ=の後の文字は可変(桁数も増減)する場合があります。
上7行はいらない文字列ですが、取得時に必ず文字列に入ってきます。
ご教授の程、宜しくお願い致します。
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>";
?>
ご教授ありがとうございました。
質問後、別件でばたばたしており、連絡が遅くなってしまい失礼しました。
先ほど試してみたところ、バッチリでした。
正規表現は難しいですね?
大変助かりました。
ありがとうございました。
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 を返してやればいい。
ご教授ありがとうございました。
質問後、別件でばたばたしており、連絡が遅くなってしまい失礼しました。
大変参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP カラーミーショップのSmartyでの文字列抜き出し 2 2022/05/06 11:51
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Java Java 南京錠 2 2023/02/04 11:46
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c# string型の変数に、ダブルク...
-
(から)までの文字列を削除したい
-
【php】二進数をフラグとして扱...
-
独自タグに囲まれた文字列の変換
-
PHPで「,」を「, 」へ置換した...
-
文字列の置換をCStringで(C++)
-
VBSで"をエスケープする文字は?
-
mcryptで英数字(12未満)のみに...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
テキストファイルから改行コー...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
グレープシティのSPREAD...
-
エクセルのCOUNTIFが正しくカウ...
-
UTF8メールがLotus Notesで文字...
-
jsp 改行コードで改行させて表...
-
ExcelVBAでメールを作成してメ...
-
C++で空Enterの入力を判...
-
csobjというタグについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
PHP・Wordpress preg_replaceを...
-
文字列の置換をCStringで(C++)
-
○分から○時間○分に変換
-
文字列の括弧について(初心者)
-
近似した文字列を置換するエク...
-
PHPの¥
-
ダブルクォーテーションが置換...
-
php 正規表現で、\\マークを取...
-
(から)までの文字列を削除したい
-
文字列のアスタリスク置換
-
htmlspecialchars関数でエスケ...
-
nl2brが効かないのですが・・・
-
PHPでCSVを出力する際のセルに...
-
c# string型の変数に、ダブルク...
-
正規表現で<BR>の行を除外した...
-
ダブル、シングルクォーテーシ...
-
空白文字のカンマへの変換について
-
【PHP】preg_replace() で正...
おすすめ情報