PHPの繰り返し+置換処理について質問させてください。
画像にALTタグを自動で入れようとしています。
画像にIDが振られているのでIDから枚数を判別して、その枚数分だけ繰り返してカウントした回数をALTタグに含めようとしているのですが、一枚の画像に枚数分だけALTタグが入ってしまいます。
$i = 1; foreach( $image_id as $id ){ $html = preg_replace( '/.jpg"/', '.jpg" alt="'.$i.'枚目の画像'"', $html ); $i++; }
理想はこのようにしたいのですが
<img src="image_abcd.jpg" alt="1枚目の画像"> <img src="image_0123.jpg" alt="2枚目の画像"> <img src="image_wxyz.jpg" alt="3枚目の画像"> <img src="image_9876.jpg" alt="4枚目の画像">
現状はこうなってしまいます。
<img src="image_abcd.jpg" alt="4枚目の画像" alt="3枚目の画像" alt="2枚目の画像" alt="1枚目の画像"> <img src="image_0123.jpg" alt="4枚目の画像" alt="3枚目の画像" alt="2枚目の画像" alt="1枚目の画像"> <img src="image_wxyz.jpg" alt="4枚目の画像" alt="3枚目の画像" alt="2枚目の画像" alt="1枚目の画像"> <img src="image_9876.jpg" alt="4枚目の画像" alt="3枚目の画像" alt="2枚目の画像" alt="1枚目の画像">
枚数の順番は降順でも構わないのですが、どのようにすれば理想通りにできますでしょうか。
よろしくお願いします。
「画像にIDが振られている」とはどういうことなのかもうすこし詳しく追記していただけませんか?
簡単すぎてすみません。 根本はwordpressで動いていまして、画像の情報にはIDなどが入っています。 その情報の中に画像の表示順などは存在しないのでIDを利用して枚数を判断しようと考えました。 本来なら自動でalt=""が入りますが、それらの機能は全て無効化していますので手入力したようなHTMLが出力されるようにしています。
回答2件
あなたの回答
tips
プレビュー