PHP字符串在javascript代码中加上逗号,最后一个字符串除外


php string in to javascript code with comma except last string

我使用的是javascript插件这是我需要u帮助的行

<script type="text/javascript"> 
   $('ul#news').newswidget({ source: ['http://rss.news.yahoo.com/rss/us', 'http://rss.news.yahoo.com/rss/world', 'http://feeds.bbci.co.uk/news/rss.xml'],

我想从MySQL添加URL数据我用的是像这样的while循环

     $('ul#news').newswidget({ source:[<?php
while($rssrow = mysql_fetch_array($rss))
{
     echo "'"."$rssrow[rss_name]"."'".",";
}
?>],

它不能正常工作:(。我需要像这样得到URL URL RUL。这意味着最后一个

没有逗号

谁来帮帮我

通过一个简单的重组,你可以很容易地做到这一点:

if($rssrow = mysql_fetch_array($rss))
{
    echo "'".$rssrow['rss_name']."'";
    while($rssrow = mysql_fetch_array($rss))
    {
         // note no quotes -- they are redundant
         // prepend the comma
         echo ","."'".$rssrow['rss_name']."'";
    }
}

它确实为读者增加了一个额外的步骤,但它的好处是不需要子字符串、新数组或标志。

您可以直接创建字符串并删除最后一个逗号:

$result = '';
while($rssrow = mysql_fetch_array($rss))
{
     $result .= "'"."$rssrow[rss_name]"."'".",";
}
echo ($result != '') ? substr($result, 0, -1) : "''";

OR使用implode():

$result = array();
while($rssrow = mysql_fetch_array($rss))
{
     $result[] = $rssrow[rss_name];
}
echo "'" . implode($result, "','") . "'";

(如果结果集为空,这两个方法都将输出'')

$urls = "";
while($rssrow = mysql_fetch_array($rss))
{
    $urls.= "'$rssrow[rss_name]',";
}
echo substr($urls, 0, -1);

我想知道为什么没有注释指出应该对输出进行转义。如果一个条目包含一个',那么除了Dmitry F的第一个解之外的所有解都会被严重破坏。

$('ul#news').newswidget({ source:[<?php
$arr = array();
while($rssrow = mysql_fetch_array($rss))
{
  $arr[] = '"' . str_replace('"', ''"', $rssrow['rss_name']) . '"';
}
echo implode(',', $arr);
?>],

这里有一个稍微不同的方法:

<?php
$news = array(
'source' => array(
    'http://example.com',
    'http://example.com'
)
);
$news_json = json_encode($news);
?>
<script>
$('ul#news').newswidget(<?php echo $news_json; ?>);
</script>

另一种变化:

$url = array();
while($rssrow = mysql_fetch_array($rss))
{
    $url[] = '"' . $rssrow['rss_name'] . '"';
}
echo implode(',', $url);