0

基本的なCMSからの単純なコマンドをデータベース呼び出しに置き換えようとしています。

ユーザーが入力します

[gallery id=x]

CMSに入れて、これをなくして、そのギャラリーに含まれている画像を見つけて表示します(jQuery Cycleプラグインの準備ができています)

私は得ることができます:

$pattern = '/\[gallery id=(\w+)\]/i';
$rpl     = 'Display Gallery ID ${1}';
$bubble  = preg_replace($pattern, $rpl, $bubble);

...「DisplayGallery12」を返します(たとえば)。しかし、私はこれを行うためにそれが必要です:

$sql = "SELECT * FROM galleries INNER JOIN photos ON photos.PhotoGallery=galleries.GalleryID WHERE GalleryID='x'";
$set = mysql_query($sql);
echo '<div id="gallery">';
while($row = mysql_fetch_array($set))
{
 echo '<img src="'.$row['PhotoPath'].'" />';
}
echo '</div>';
4

2 に答える 2

1

この関数を使用するpreg_replace_callbackと、正規表現が見つけた各一致を取得して、提供されたコールバックから返された文字列に置き換えます。したがって、次のようなことができます。

function generateGallery($matches) {
    // generate the string here, $matches[1] will be your gallery id
    return "Gallery Content for Gallery " . $matches[1];
}

$pattern = '/\[gallery id=(\w+)\]/i';
$bubble = preg_replace_callback($pattern, generateGallery, $bubble);
于 2013-01-02T22:03:01.537 に答える
0

使用する:

preg_match($pattern, $string, $matches);

この後、IDはになり$matches[1]ます。

于 2013-01-02T22:11:43.293 に答える