У меня есть код, который захватывает информацию из базы данных, а затем создает путь к изображению и возвращает его, который я использую как img src на другой странице.
Вот функция:
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 /» добавляется дополнительное пространство. Я пробовал обрезку пути и даже обрезку функции при ее вызове, но не работал. Есть идеи?
Пробел, который вы видите почти наверняка, исходит из этой строки:
include 'connect.php';
Проверьте, что у вас есть в файле connect.php
, и удалите пробелы перед открытием <?php
, и если у него есть ?>
, Просто удалите его.
Мой друг @ AD7six прав! (и то, что он рекомендует, лучше всего делать!).
Но, если вам нелегко «ловить» пространство, и вы хотите обойти его, вы можете сделать вместо этого:
$img = getMainImage(); echo "<img src='\"images/t_" . $img . "\" width=\"40\" height=\"40\" />";
Попробуйте это небольшое решение:
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" />