Проблема конкатенации строк в PHP? - PullRequest
0 голосов
/ 14 сентября 2010
function formatUpdate($tweet,$dt,$picture,$username)
{
    if(is_string($dt)) $dt=strtotime($dt);

    $tweet=htmlspecialchars(stripslashes($tweet));


       $at = "@" . $username;




    return'
    <li>
    <a href="nano.com/' . $username . '"><img class="avatar" src="images/' . $picture . '" width="48" height="48" alt="avatar" /></a>
    <div class="tweetTxt">
    <strong><a href="nano.com/' . $username . '">' . $username . '</a></strong> '. preg_replace('/((?:http|https|ftp):\/\/(?:[A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?[^\s\"\']+)/i','<a href="$1" rel="nofollow" target="blank">$1</a>',$tweet).'
    <div class="date">'.relativeTime($dt).'</div> <a class ="reply"  href="?replyto=' echo $at;   '">reply</a>
    </div>
    <div class="clear"></div>
    </li>';

}

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Болт прав.Часто проблема конкатов связана с путаницей смешанного кода, литералов и заключительных / двойных кавычек.вместо этого попробуйте использовать heredoc для очистки вашего блока кода.

Например, я бы сделал следующее, чтобы спасти глаза, глядя на код и избавить свой разум от безумия, пытаясь найти, где находится синтаксическая ошибка.(только псевдокодирование):

$at = "@$username";
$rt = relativeTime($dt);

$out = <<<raw
    <div class="date">$rt</div>
    <a class ="reply" href="?replyto=$at">reply</a>
raw;

просто посмотрите, насколько проще это выглядит, а?

, чтобы узнать о heredoc, вот ссылка на чтение.1010 *http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

0 голосов
/ 14 сентября 2010

Чтобы добавить значение переменной в строку, вам не нужно выводить переменную.

У вас есть

href="?replyto=' echo $at;   '">reply</a>

Измените его на

href="?replyto='. $at .'">reply</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...