クイズシステムを作ろうとしています。データベースに次のテーブルがあります。
CREATE TABLE fill_gap_exercise (
quiz_id INT PRIMARY KEY,
text VARCHAR,
wordslist VARCHAR,
date DATETIME
)
テーブルのデータ行の例を次に示します。
INSERT INTO fill_gap_exercise
(quiz_id, text, wordslist, date)
VALUES
(4, 'hello {0} up {1}', 'a:2:{i:0;s:5:"whats";i:1;s:5:"men??";}', '2012-10-29 13:24:25')
フィールド{}
内の文字を置き換えようとしていますが、文にシーケンスが複数回出現すると問題が発生します。text
{}
これが私のコードです:
<?php
include('../connect_db.php');
$myData = mysql_query('SELECT * FROM fill_gap_exercise');
while ($row = mysql_fetch_array($myData, MYSQL_ASSOC))
{
$array = unserialize($row['wordslist']);
$text = implode('\r\n', $array);
echo "\n<br />";
$pattern = '/\{(.*)\}/';
$replace = '<input type="text" name="j_1" id="' . $row["quiz_id"] . '" />';
$subject = $row['text'];
$string = preg_replace($pattern, $replace, $subject);
print $string;
}