-1

Twitter と同じように (CSS リピートを使用して) 背景に画像を表示したいのですが、問題は MySQL データベースから取得していて、CSS がsrc背景のタグを処理できないことです。

MySQLデータベースから画像を取得するにはどうすればよいですか(データベースから取得して画像を表示する方法は知っていますが、ここでは別の方法で表示したいです)。つまり、画像を本文の背景として表示し、CSSrepeatステートメントが使用されているかのように画像を繰り返す必要があります. twitter.comのように。

私のコードは PHP と MySQL です。この画像はデータベースから取得されるため、URL を取得する必要があります。

4

2 に答える 2

1

これは 2 つの手順で行うことができます。

どの行に表示する画像があるかを一意の ID で識別するパラメーターを受け入れる PHP スクリプトを作成します。このスクリプトは、データベースから画像を抽出し、適切な MIME タイプのコードを送信して、ブラウザーが理解できるようにします。このように、コンテナ (または body タグ) にクラスを適用し、次のように背景を表示します。

.backgroundTile { background-image: url('/path/to/php-image-render-script.php?image_id=1212') !important; background-repeat: repeat; }

サンプル PHP スクリプト (ソース - http://cookbooks.adobe.com/post_Display_an_image_stored_in_a_database_ PHP -16637.html ):

<?php require_once('Connections/testConn.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$colname_getImage = "-1";
if (isset($_GET['image_id'])) {
  $colname_getImage = $_GET['image_id'];
}
mysql_select_db($database_testConn, $testConn);
$query_getImage = sprintf("SELECT mimetype, image FROM images WHERE image_id = %s", GetSQLValueString($colname_getImage, "int"));
$getImage = mysql_query($query_getImage, $testConn) or die(mysql_error());
$row_getImage = mysql_fetch_assoc($getImage);
$totalRows_getImage = mysql_num_rows($getImage);
header('Content-type: ' . $row_getImage['mimetype']);
echo $row_getImage['image'];
mysql_free_result($getImage);
?>
于 2013-01-01T09:41:52.630 に答える
1

<img src="#" />PHPドキュメントでCSSを使用する必要があるため、繰り返すことはできません。次のように行うことができます

<style>
body {
   background-image: url('<?php echo $whatever; ?>') !important;
   background-repeat: repeat;
}
</style>

あなたができることはどちらかです

.php拡張機能付きのスタイルシートを作成します。

よりも<link rel='stylesheet' type='text/css' href='css/stylesheet.php' />

ページの上部にこれを記載します

<?php
    header("Content-type: text/css; charset: UTF-8");
?>

それに応じて変数を設定できるようになりました

<?php
    header("Content-type: text/css; charset: UTF-8");
    $background = "$imgsrc"; /* Retrieve your image here */

    /*Now simply use the $background variable for setting the body background */
?>
于 2013-01-01T09:36:27.877 に答える