<div><input /><label>ラベル名</label></div>という形式になっているHTMLの順序をpreg_matchやpreg_match_allなどで変更したいと思います。
途中、一部分はできたのですが、完成には至っていません。
下記に掲載する求める結果のように出力するにはどのようにしたら良いのでしょうか。
[元になるテキスト]
$text=‘<div class="form-control"><input type="checkbox" name="data[City][name][]” value="1" id="CityName1" /><label for="CityName1">渋谷</label></div>
<div class="form-control"><input type="checkbox" name="data[City][name][]” value="2" id="CityName2" /><label for="CityName2">秋葉原</label></div>
<div class="form-control"><input type="checkbox" name="data[City][name][]” value="3" id="CityName3" /><label for="CityName3">東京</label></div>’;
1.上記のソースを<div>〜</div>で1行ずつ取得して配列($textArr)に入れる
2.配列から1行ずつデータを取得し、1行毎にタグの位置を入れ替える
例)1行目の場合
<div class="form-control"><input type="checkbox" name="data[City][Name][]" value="1" id="CityName1" /><label for="CityName1">渋谷</label></div>
のdivタグを取り除き、「渋谷」の前にある<label for="CityName1">タグを先頭に持ってきて、先頭のラベルに「class="checkbox-inline”」を追加して下記のように変更したいです。
<label class="checkbox-inline" for="CityName1"><input type="checkbox" name="data[City][name][]” value="1" id="CityName1" /></label>
3.求める結果(最終的な出力として)
<label class="checkbox-inline" for="CityName1"><input type="checkbox" name="data[City][name][]” value="1" id="CityName1" />渋谷</label>
<label class="checkbox-inline" for="CityName2"><input type="checkbox" name="data[City][name][]” value="2" id="CityName2" />秋葉原</label>
<label class="checkbox-inline" for="CityName3"><input type="checkbox" name="data[City][name][]” value="3" id="CityName3" />東京</label>
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
[現状で出来ているところ]
//1行のソースのdivタグを取り除く
$text=‘<div class="form-control"><input type="checkbox" name="data[City][name][]” value="1" id="CityName1" /><label for="CityName1">渋谷</label></div>
if (preg_match_all('/<div class="form-control"(.*?)<\/div>/s', $text, $match) ){
echo $match[1][0];
}
(結果)
<input type="checkbox" name="data[City][name][]” value="1" id="CityName1" /><label for="CityName1">渋谷</label>
//labelタグの前半<label for="CityName1">だけを切り出して、ソースの最前に持ってくる部分がうまくいきません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ご回答よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
タイプミスがいろいろあるので気を付けてください
単純に書かれてあるものを羅列するだけでいけそうですけどね・・・
$pattern='/(<div class="form-control">)(<input .+?>)(<label)( for=".+?">)(.+?)(<\/div>)/';
$replacement='$3 class="checkbox-inline"$4$2$5';
$text=preg_replace($pattern,$replacement,$text);
print $text;
yambejpさま
ご回答ありがとうございます。タイプミス申し訳ありませんでした。
preg_matchやpreg_match_allで1個ずつ取り出して連結することしか思い浮かびませんでした。preg_replaceで一度に入れ替えが出来てしまうんですね。
今後ともよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームで戻った際に入力済み...
-
【初心者】XAMPPのapacheの(恐...
-
プログラミング言語で、使える...
-
phpでcookieがうまく保存されない
-
PHPで入力フォームでデータを確...
-
こちらはただの直列処理ですか?
-
preg_matchで Warning: Undefin...
-
PHP MySQLに画像を直接保存
-
PHP と MySQL でテーブルの行数...
-
SFTPなどは使わないホームペー...
-
重複を防ぐ記述について教えて...
-
PHPSpreadsheetによる書き出し...
-
PHPで画像の渡しが上手く行きま...
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
-
awsにApacheとPHPを入れて、何...
-
なんでブラウザでPHPを動かすた...
-
オススメのプログラミングスク...
-
MySQLの配置が変わったため、db...
-
PHPでのパスワード制限のセキュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
重複を防ぐ記述について教えて...
-
index.phpって何ですか? 具体...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
-
PHPでユーザー情報を入力して簡...
-
ワードプレスサイト PHP8.0.25...
-
php 完了画面の送信メールのコ...
-
SFTPなどは使わないホームペー...
-
PHPのセッション有効期限について
-
csvファイルについて教えて下さ...
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで訪問回数を表示するカウン...
-
ファイルアップロードに関して...
-
掲示板を作成しておりアップロ...
-
Q&Aサイトを作成していてURLの...
おすすめ情報