【问题标题】:PHP loop through explode()PHP循环通过explode()
【发布时间】:2013-05-17 07:26:41
【问题描述】:

我目前正在使用数据库中的两个字段,这些字段包含用逗号 (,) 分隔的单词。

这是我的代码

    $tags = explode(",",$tags);
$tagsdesc = explode(",",$tagsdesc);

foreach($tags as &$key) 
{
    foreach($tagsdesc as &$value) 
    {
        echo "<img src='images/".$key."' width='20' height='20' title='".$value."'></img> ";
    }
}

$tags 和 $tagsdesc 这两个值被输入到一个函数中。我很难吐出 $key 显示的 html,但不是图像标题的 $value,谢谢。

【问题讨论】:

  • 了解数据库规范化
  • @Mr.Alien 在某些情况下,逗号分隔的值是可以的。

标签: php arrays foreach explode


【解决方案1】:

如果这些值应该结合在一起,你需要这个:

foreach($tags as $key => $tag) {
    $desc = $tagsdesc[$key];
    echo sprintf('<img src="images/%s" width="20" height="20" title="%s" />',
        urlencode($tag),
        htmlspecialchars($desc, ENT_QUOTES, 'UTF-8')
    );
}

另外,了解 HTML 转义;不正确地执行此操作会导致 XSS。

【讨论】:

  • 嗨@Jack,谢谢你的回复,我似乎遇到了一个错误,当检查HTML现在看起来像这样&lt;img src="images/0" width="20" height="20" title="" /&gt;
  • @AzzerB 啊,图像源使用了错误的变量:) 更新了。
  • 嗨@Jack,我很抱歉这么痛苦。修改后的代码现在显示图像但不幸的是我仍然没有通过
  • @AzzerB 你调试过这两个变量的内容了吗?
  • 嗨@Jack,非常抱歉,因为我的结果有错误!代码正在运行,但是当我将鼠标悬停在图像上时,标题现在只显示一个字母。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多