ホームページ  >  記事  >  バックエンド開発  >  混乱しています。PHP の正規表現を見つけて、オンラインでお待ちください。

混乱しています。PHP の正規表現を見つけて、オンラインでお待ちください。

WBOY
WBOYオリジナル
2016-06-23 14:10:54898ブラウズ

HTMLはこんな感じです
うーん
正規表現をいくつか考えて、結果は大体こんな感じです、時間がないので書けません…
のチェック値を取得するのを手伝ってください。ラジオボタンと以下のテキストエリアの値を入力して、最終的に欲しいのは大体こんな感じです

<div class="itemCartContaine"><input type="radio" name="BTN_GROUP_59679208328481" value="22334875:SHIP_TO_HOME:1" onclick=""><input type="radio" name="BTN_GROUP_59679208328481" value="22334875:SHIP_TO_HOME:2" onclick=""><input type="radio" name="BTN_GROUP_59679208328481" value="22334875:SHIP_TO_HOME:3" onclick="" checked=""><textarea id="IncludeMessage" name="TEXTAREA_59679208328481" onclick="WALMART.checkout.shipping.giftMsgOnClick(this);" onkeyup="WALMART.checkout.shipping.giftMsgLimiter(this, 59679208328481)">Enter your gift message here</textarea></div><div class="itemCartContaine"><input type="radio" name="BTN_GROUP_59679208328482" value="22334876:SHIP_TO_HOME:1" onclick=""><input type="radio" name="BTN_GROUP_59679208328482" value="22334876:SHIP_TO_HOME:2" onclick="" checked=""><input type="radio" name="BTN_GROUP_59679208328482" value="22334876:SHIP_TO_HOME:3" onclick=""><textarea id="IncludeMessage2" name="TEXTAREA_59679208328482" onclick="" onkeyup="">Enter your gift message here2</textarea></div>

isu の代わりに is を使うだけです
実現できますか


ディスカッションに返信 (解決策)

オンラインで待っています...

[1] => Array        (            [0] => BTN_GROUP_59679208328481            [1] => BTN_GROUP_59679208328482            [2] => TEXTAREA_59679208328481            [3] => TEXTAREA_59679208328482        )    [2] => Array        (            [0] => 22334875:SHIP_TO_HOME:3            [1] => 22334876:SHIP_TO_HOME:2            [2] => Enter your gift message here            [3] => Enter your gift message here2        )

上記で得られた結果は次のとおりです:

$pattern='/<input type="radio" name="([^"]*?)" value="([^"]*?)" ([^>]*?)>(.*?)<input type="radio" name="([^"]*?)" value="([^"]*?)" ([^>]*?)>(.*?)<input type="radio" name="([^"]*?)" value="([^"]*?)" ([^>]*?)>(.*?)<textarea id="([^"]*?)" name="([^"]*?)" ([^>]*?)>([^<]*?)<\/textarea>/sm';


次に、添え字 2,5,8,16 を削除して結果を取得します

と一致するには 2,6,10,16 である必要があります。必須コンテンツ

定期的なルールを提供し、その後は自分で処理する ダウンロードすることで実現できます。

[1] => Array        (            [0] => BTN_GROUP_59679208328481            [1] => BTN_GROUP_59679208328482        )    [2] => Array        (            [0] => 22334875:SHIP_TO_HOME:1            [1] => 22334876:SHIP_TO_HOME:1        )    [3] => Array        (            [0] => onclick=""            [1] => onclick=""        )    [4] => Array        (            [0] =>             [1] =>         )    [5] => Array        (            [0] => BTN_GROUP_59679208328481            [1] => BTN_GROUP_59679208328482        )    [6] => Array        (            [0] => 22334875:SHIP_TO_HOME:2            [1] => 22334876:SHIP_TO_HOME:2        )    [7] => Array        (            [0] => onclick=""            [1] => onclick="" checked=""        )    [8] => Array        (            [0] =>             [1] =>         )    [9] => Array        (            [0] => BTN_GROUP_59679208328481            [1] => BTN_GROUP_59679208328482        )    [10] => Array        (            [0] => 22334875:SHIP_TO_HOME:3            [1] => 22334876:SHIP_TO_HOME:3        )    [11] => Array        (            [0] => onclick="" checked=""            [1] => onclick=""        )    [12] => Array        (            [0] =>             [1] =>         )    [13] => Array        (            [0] => IncludeMessage            [1] => IncludeMessage2        )    [14] => Array        (            [0] => TEXTAREA_59679208328481            [1] => TEXTAREA_59679208328482        )    [15] => Array        (            [0] => onclick="WALMART.checkout.shipping.giftMsgOnClick(this);" onkeyup="WALMART.checkout.shipping.giftMsgLimiter(this, 59679208328481)"            [1] => onclick="" onkeyup=""        )    [16] => Array        (            [0] => Enter your gift message here            [1] => Enter your gift message here2        )

配列
(
[0] => SHIP_TO_HOME:3" onclick="" selected="">
51336923af472ea147be00e02e106b3aギフト メッセージを入力してください24daa35ad8e25ba72f0166fa3b840c88 name="BTN_GROUP_59679208328482" value="22334876:ホームへ発送: 2" onclick="" selected="">
90d23eb0920fd81e8a6818affa005036
1658a6d4a0adb1db2f220eaa916cbaed 22334875:SHIP_TO_HOME:3
[1] => 2334876: ship_to_home: 2
)
[3] = & gt; 配列
(
[0] = & gt; textarea_59679208328481
[1] = & gt; Textarea_59679208328482
)= [4] =&gt;


$s=<<.+?]+name="(.+?)"[^>]+>([^<]+) 

まず第一に、モデレーター、ありがとうございます
これには、データの二次処理が必要のようです
どれが選択されるかを決定するために配列をループするだけです
判断する必要はありません。直接実行してください
配列を必要な配列に再編成するだけです



$pattern='/<input type="radio" name="([^"]*?)" value="([^"]*?)" ([^>]*?)>(.*?)<input type="radio" name="([^"]*?)" value="([^"]*?)" ([^>]*?)>(.*?)<input type="radio" name="([^"]*?)" value="([^"]*?)" ([^>]*?)>(.*?)<textarea id="([^"]*?)" name="([^"]*?)" ([^>]*?)>([^<]*?)<\/textarea>/sm';


まず第一に、モデレーター、ありがとうございます
これには、データの二次処理が必要のようです
どの選択肢が正しいかを決定するために配列をループするだけです。
判断する必要はありません、直接知ることができます
配列を必要な配列に再構成するだけです
でも、私はそれを取り出しました... ははは。

提供正则,然后你自己再处理下就可以实现。

$s=<<.+?]+name="(.+?)"[^>]+>([^<]+)  
Array
(
    [0] => Array
        (
            [0] => name="BTN_GROUP_59679208328481" value="22334875:SHIP_TO_HOME:3" onclick="" checked="">
6c5c0c7eb593980b1822279896d0f119Enter your gift message here73b1a6dfe3beac56f5b46b4bb6aaf38a name="BTN_GROUP_59679208328482" value="22334876:SHIP_TO_HOME:2" onclick="" checked="">
81f443468e563b395f49149e077bbe5f
5740090381151fad490231a9df713a8eEnter your gift message here27c2a72081e800aba9084f22bdfe2a3eb Array
        (
            [0] => BTN_GROUP_59679208328481
            [1] => BTN_GROUP_59679208328482
        )

    [2] => Array
        (
            [0] => 22334875:SHIP_TO_HOME:3
            [1] => 22334876:SHIP_TO_HOME:2
        )

    [3] => Array
        (
            [0] => TEXTAREA_59679208328481
            [1] => TEXTAREA_59679208328482
        )

    [4] => Array
        (
            [0] => Enter your gift message here
            [1] => Enter your gift message here2
        )

)
用这个,这个很简单,谢谢乔大神,我记得上次也是你帮我解决了一个很麻烦的.
膜拜啊.大神...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php http通信次の記事:php http通信