Echo / return добавляет пробелы перед переменной

У меня есть код, который захватывает информацию из базы данных, а затем создает путь к изображению и возвращает его, который я использую как 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" />