- ベストアンサー
PHPで特定の文字列を抽出する方法
- PHPで特定の文字列を抽出する方法について説明します。
- WAMP環境で情報サイトを運営しており、ユーザーが別サイトのユーザーIDを入力する必要があります。その入力方法として、特定の文字列を抽出する方法を解説します。
- 具体的な処理の流れや注意点についても説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
正規表現で抽出します。 //入力した文字列を取得する $文字列 = $_REQUEST["xxx"]; //xxx=入力領域の名前 //未入力時のチェックなど 中略 //正規表現を設定する $正規表現 = "/\\/\\d{9}\\?/"; //数字部分を抽出する(正しくは"/nnnnnnnnn?") preg_match($正規表現,$文字列,$抽出部分); //抽出した文字列の"/"と"?"を除く $抽出部分 = substr($抽出部分,1,9); //SQLの構築 $sql = "INSERT INTO ~ VALUES('" . $抽出部分 . "')"; //SQL実行 以下略 正規表現の意味は以下の通りです。 "/"以降に続く9個の数字とその後の"?" 英数字で任意の長さの正規表現は以下の通り $正規表現 = "/\\/[\\da-zA-Z]+\\?/"; ※任意の文字数なので、substrの第3引数に注意 あるいは正規表現による置換で、英数字以外を 空文字列にする方法もあります。この方が有利 かも知れませんね。 正規表現の構文はググれば見つかります。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
以前同じような質問されていますよね? その時から思っていたのですが何を知りたいのでしょうか? >の情報を(1)で入力してもらい、(2)の入力確認画面に遷移させるときにPOSTで渡し、 >不要な部分はカットしてからそれを(3)の入力完了ページにPOSTで飛ばしDBにInsertする。 いまいち日本語が通じないのですが 命題で言う「入力」というのはどこに入力するのでしょうか? input type="text"で入力欄をつくる?ってことですか POSTで渡すというからにはformになっていてmethodがPOSTになっていて サブミットするということでよいですか? 「不要な部分をカットする」とはユーザーがカットするのですか プログラムがカットするのですか? そもそもPHPで処理するということでよいのでしょうか? 「www.hogehoge.net/honya/rara/987654321?」はどういう状態でうごいているのでしょうか apacheがrewriteして特定のphpファイルに飛ばすということですか? 具体的なソースを例示して、どこがわからないか聞いた方がよいでしょう 今回の質問の意図を理解できる人はかなり稀有だと思いますよ
- ahoo_ok
- ベストアンサー率31% (30/95)
正規表現
お礼
度々のアドバイスありがとうございます! 処理の流れがよくわかりました。 自己流でなんとか乗り切る前に、上級者の方がどのように設計するかを参考にしたかったので、とてもありがたいです。 正規表現設定からpreg_match、最後にsubstrで調整 とてもスマートですね。 まだまだ未熟なので、この流れが思いつきませんでした。 説明がなかなかうまくできておらずご面倒お掛けしましたが、内容をくみ取っていただけるところもさすがプロの方ですね。本当にありがとうございました。