【问题标题】:Rewrite code from javascript to PHP将代码从 javascript 重写为 PHP
【发布时间】:2014-01-09 17:25:30
【问题描述】:

我有 javascript 代码:

if (imageData[imageCount].comments.data != null) 
{
 text = 'Comments Data:<br />';
 imageData[imageCount].comments.data.forEach(function(comment){
 text += comment.from.username + ': ' + comment.text + '<br />';
});
}

PHP 中哪个 imageData[imageCount] 指的是 $data。

我试图用 PHP 重写 self 但没有成功。

foreach ($contents->data as $data) { 
if ($data->comments->data != null) 
{
 foreach($data->comments->data as $comment)
 {
  $text = comment->from->username + ': ' + comment->text + '<br />';
 });
}

我确定代码结构有问题。它返回为foreach() 提供的无效参数

-- 编辑--

我已成功将 sn-p 转换为 PHP。但是我遇到了一个新问题,因为我试图从 API(在本例中为 Instagram API)创建 XML 文件。 查看产品部分的 productName 和 productPrice 属性:

http://pastebin.com/ubGGyp9b

Value productName="Sushi Homemade" 和 productPrice="50.000" 仅适用于 productID="002"。但是为什么值也填充到下一个productID >= 002。

这段代码是否有错误:

<products>
<category categoryName="Instagram">
    <?php

foreach ($contents->data as $data) {

foreach($data->comments->data as $comment){
          if(preg_match('/#title/', $comment->text)){
          $komen = preg_replace('/#title/', '', $comment->text);
          break;
          } else { $komen = 'No Title'; }
}

foreach($data->comments->data as $comment){
          if(preg_match('/#price/', $comment->text)){
          $harga = preg_replace('/#price/', '', $comment->text);
          break;
          } else { $harga = '0'; }
}


          echo '<product productName="'. $komen .'" productID="' . $data->id . '" thumbPath="' . $data->images->thumbnail->url . '" productPrice="'. $harga .'">
        <details>
                    <![CDATA[
                    <img src="' . $data->images->low_resolution->url . '" width="100%"/>
        ' . $data->caption->text . '
                    ]]>
        </details>
</product>

【问题讨论】:

  • comment 会引起问题。 $comment,也许?当然,在 PHP 中,. 是连接运算符。你正在用+ 做一堆“字符串数学”。
  • PHP 也不使用+ 进行连接。
  • $contents-&gt;data$data-&gt;comments-&gt;data 是数组吗?您没有指出是哪个 foreach 导致了问题。
  • // 初始化类 $instagram = new Instagram($accessToken); $instagram->setAccessToken($accessToken); $contents = $instagram->getUserMedia($userID,$settings['count']);
  • 我已经编辑了这个问题。请往上看

标签: javascript php xml


【解决方案1】:

您在最后一行忘记了 $ 并且某些括号未正确设置。要在 PHP 中连接字符串,请使用“。”而不是“+”

foreach ($contents->data as $data) {
    if ($data->comments->data != null) {
        foreach ($data->comments->data as $comment) {
            $text = $comment->from->username . ': ' . $comment->text . '<br />';
        }
    }
}

【讨论】:

  • 并确保包含的数据是对象或数组或字符串:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2014-10-22
  • 1970-01-01
  • 2016-09-27
  • 2015-07-05
  • 1970-01-01
  • 2021-10-30
相关资源
最近更新 更多