1

データベースから情報を取得し、画像へのパスを作成して返すコードがあります。これを別のページのimgsrcとして使用します。

関数は次のとおりです。

function getMainImage ()
{
    $query = "SELECT * FROM pictures WHERE username = '$_SESSION[username]' AND main = 'y' LIMIT 1";
    include 'connect.php';
    $result = mysql_query($query) or die (mysql_error());
    mysql_close($dbhandle);
    $row = mysql_fetch_assoc($result);
    $path = "images/t_$row[username]_$row[number].$row[ext]";
    return $path;
}
<img src="<?php echo getMainImage(); ?>" width="40" height="40" />

ページソースを見たときの出力は次のとおりです。

<img src=" images/t_image_3.jpg" width="40" height="40" />

「images/」の前に関数から余分なスペースが追加されています。パスをトリミングし、呼び出し時に関数をトリミングしようとしましたが、どちらも機能しませんでした。何か案は?

4

3 に答える 3

6

含む

表示されている空白は、ほぼ確実に次の行から来ています。

include 'connect.php';

ファイルにあるものを確認しconnect.php、開く前の空白を削除します。空白<?phpがある場合は?>、単に削除します。

于 2012-10-15T18:46:26.620 に答える
1

私の友人@AD7sixは正しいです!(そして彼が推奨することは最善のことです!)

ただし、スペースを「キャッチ」するのに苦労していて、それを回避したい場合は、代わりに次のようにすることができます。

$img = getMainImage();
echo "<img src='\"images/t_" .  $img . "\" width=\"40\" height=\"40\" />";
于 2012-10-15T18:49:47.793 に答える
0

この小さな解決策を試してください:

    require_once 'connect.php';

        function getMainImage (){
            $User = mysql_real_escape_string($_SESSION[username]);
            $query = "SELECT * FROM pictures WHERE username = '$User' AND main = 'y' LIMIT 1";
            $result = mysql_query($query, $connetion) or die (mysql_error());
            $row = mysql_fetch_assoc($result);
            if($row) $path = "images/t_$row[username]_$row[number].$row[ext]";
            return isset($path) ? $path : 'default_url_to_img';
        }

<img src="<?= getMainImage(); ?>" alt="some txt" width="40" height="40" />
于 2012-10-15T19:09:30.923 に答える