Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在ajax获取url中获取随机值_Php_Jquery_Ajax_Json_Instagram - Fatal编程技术网

Php 在ajax获取url中获取随机值

Php 在ajax获取url中获取随机值,php,jquery,ajax,json,instagram,Php,Jquery,Ajax,Json,Instagram,编辑:我已经设法解决了上述问题,但是每次加载都会返回相同的max_id,因此相同的20张照片会继续加载 我试图从标签中提取Instagram照片,然后在滚动到页面底部时,使用ajax提要调用下一组照片。问题是,我的ajax脚本从某处提取了一个随机值,并将其放在GET url的末尾,这使得url变得无用 我一整天都在检查我的代码,找不到哪里出错了 index.php jQuery(document).ready(function(){ $('#imore').bind('click', func

编辑:我已经设法解决了上述问题,但是每次加载都会返回相同的max_id,因此相同的20张照片会继续加载

我试图从标签中提取Instagram照片,然后在滚动到页面底部时,使用ajax提要调用下一组照片。问题是,我的ajax脚本从某处提取了一个随机值,并将其放在GET url的末尾,这使得url变得无用

我一整天都在检查我的代码,找不到哪里出错了

index.php

jQuery(document).ready(function(){

$('#imore').bind('click', function(){
    var tag   = $(this).data('tag'),
        maxid = $(this).data('maxid'),
        $c = $('div#instphotos'),
        $newItems = '';

    $.ajax({
      type: 'GET',
      url: 'ajax.php',
      data: {
        tag: tag,
        max_id: maxid
      },
      dataType: 'json',
      success: function(data) {
        // Output data

        $.each(data.images, function(i, src) {

            var $newItems = $('<div class="mblock"><span class="number">1</span><div class=""><a href="'+data.images[i].src+'?loadtype=iframe" class="imagebox fancybox.iframe" ititle="<div class=&quot;posttitle&quot;>@</div><div style=&quot;float:right;margin-right:15px;&quot;></div><div class=&quot;clear&quot;></div>"><img src="'+data.images[i].thumb+'"></div>').css('opacity', 0); 
            $c.isotope( 'insert', $newItems ).fadeTo('fast', 1); 

        });
        $('#imore').data('maxid', data.next_id);

      }

    });
});
});

<?php
/** Instagram PHP API */
require_once 'instagram.class.php';

// Initialize class with client_id
// Register at http://instagram.com/developer/ and replace client_id with your own
$instagram = new Instagram('19a4efd22cc1442d97057bd1083e3385');

// Get latest photos according to geolocation for Växjö
// $geo = $instagram->searchMedia(56.8770413, 14.8092744);

$tag = 'subarulove';

// Get recently tagged media
//$media = $instagram->getTagMedia($tag);

$media = $instagram->getTagMedia('breakfast',$auth=false,array('max_tag_id'=>$maxID));

// Display first results in a <ul>
echo '<div id="instphotos">';

$i = 1;
foreach ($media->data as $data) {
    echo '  <div class="photo mblock"><span class="number">'.$i.'</span><div class=""><a href="'.$data->images->standard_resolution->url.'?loadtype=iframe" class="imagebox fancybox.iframe" ititle="<div class=&quot;posttitle&quot;>@'.$data->user->username.'</div><div style=&quot;float:right;margin-right:15px;&quot;></div><div class=&quot;clear&quot;></div>">'."\n";
    echo '    <span class="roll"></span>'."\n";
    echo '    <img src="'.$data->images->low_resolution->url.'"></a></div></div>'."\n";
$i++;
}
echo '</div>';

echo '<div id="imore" data-maxid="'.$media->pagination->next_max_id.'" data-tag="'.$tag.'"><a href="#">Load more ...</a></div>';
?>
 require_once 'instagram.class.php';

  // Initialize class for public requests
  $instagram = new Instagram('19a4efd22cc1442d97057bd1083e3385');

  // Receive AJAX request and create call object
  $tag = !empty($_GET['tag']) ? $_GET['tag']: null;
  $maxID = !empty($_GET['maxid']) ? $_GET['maxid']: null;
  $clientID = $instagram->getApiKey();

  $call = new stdClass;
  $call->pagination->next_max_id = $maxID;
  $call->pagination->next_url = "https://api.instagram.com/v1/tags/{$tag}/media/recent?client_id={$clientID}&max_tag_id={$maxID}";

  // Receive new data
  $media = $instagram->getTagMedia($tag,$auth=false,array('max_tag_id'=>$maxID));

  // Collect everything for json output
  $images = array();
  if($media){
    foreach ($media->data as $data) {
      $src = $data->images->standard_resolution->url;  
      $thumb = $data->images->low_resolution->url;  
      $url = $data->link;

      $images = array();
       foreach ($media->data as $data) {
        $images[] = array(
          $data->images->standard_resolution->url,
          $data->images->low_resolution->url,
          $data->link,
          $data->likes->count
        );
      }
    }

    echo json_encode(array(
      'next_id' => $media->pagination->next_max_id,
      'images' => $images
    ));
  }
?>
在控制台中,无论何时运行ajax请求,它都会返回: GET\u=1400114008166500(内部服务器错误)

 require_once 'instagram.class.php';

  // Initialize class for public requests
  $instagram = new Instagram('19a4efd22cc1442d97057bd1083e3385');

  // Receive AJAX request and create call object
  $tag = !empty($_GET['tag']) ? $_GET['tag']: null;
  $maxID = !empty($_GET['maxid']) ? $_GET['maxid']: null;
  $clientID = $instagram->getApiKey();

  $call = new stdClass;
  $call->pagination->next_max_id = $maxID;
  $call->pagination->next_url = "https://api.instagram.com/v1/tags/{$tag}/media/recent?client_id={$clientID}&max_tag_id={$maxID}";

  // Receive new data
  $media = $instagram->getTagMedia($tag,$auth=false,array('max_tag_id'=>$maxID));

  // Collect everything for json output
  $images = array();
  if($media){
    foreach ($media->data as $data) {
      $src = $data->images->standard_resolution->url;  
      $thumb = $data->images->low_resolution->url;  
      $url = $data->link;

      $images = array();
       foreach ($media->data as $data) {
        $images[] = array(
          $data->images->standard_resolution->url,
          $data->images->low_resolution->url,
          $data->link,
          $data->likes->count
        );
      }
    }

    echo json_encode(array(
      'next_id' => $media->pagination->next_max_id,
      'images' => $images
    ));
  }
?>

粗体部分是插入到URL中的随机值。

要添加分页,您需要调用分页方法,然后后续请求使用下一个id,还修复了
严格标准的问题:从空值创建默认对象。。。错误

一个干净的例子
$media->pagination->next\u max\u id,
“图像”=>$images
)));
}
?>
使用jQuery AJAX的Instagram分页示例
jQuery(文档).ready(函数(){
$('#imore').bind('click',function(){
var请求=$.ajax({
url:“./index.php”,
键入:“获取”,
数据:{tag:$(this).data('tag'),next_id:$(this.data('next_id'))},
数据类型:“json”
});
请求完成(功能(数据){
$.each(data.images,function(i,src){
$('')。附件(“部门照片”);
});
$('imore').data('next_id',data.next_id);
});
请求失败(函数(jqXHR,textStatus){
警报(“请求失败:+textStatus”);
});
});
});

来自AJAX中的
cache:false,
,它是阻止浏览器发送缓存响应的当前时间戳,但不应导致500错误。检查你的错误日志我已经删除了缓存线,但它仍然给我同样的东西。我确实有以下几行的错误日志:[15-May-2014 00:57:06 UTC]PHP警告:从第17行的/home/public_html/ajax.PHP中的空值创建默认对象[15-May-2014 00:57:06 UTC]PHP致命错误:在第37行的/home/public_html/ajax.PHP中调用未定义的方法stdClass::getId()是:$Call->->pagination->next_max_id=$maxID;我解决了第37行的问题。是的,我正要写一个答案,你创建了一个std对象
$call=newstdclass
但是,如果使用
$call->pagination->next_max_id
将值分配给未定义的对象,您还应该将pagination分配为std类,或者使用数组,
$call
除了在几行中之外,其他地方都没有使用,所以请保持简单。另外,您还需要检查$\u GET是否设置了
$tag=!空($\u GET['tag'])$_GET['tag']:null
并在出现null时执行某些操作。仅仅因为你的脚本发送了请求,并不意味着有人不会测试它的弱点或将其用作自己的API。它碰巧发生了注意你可能也想缓存API调用的结果,或者你想在短时间内用完你的每日配额:)什么会导致请求失败?一个404,json解析错误,很多事情基本上如果服务器返回的是200以外的带有有效json的内容,错误是什么?这个例子是一个复制粘贴的例子,在你知道它在做什么之前,不要尝试将它集成到你当前的代码中,因为你的php有一些错误。还可以检查示例中ajax its index.php的url。我刚刚创建了一个全新的索引文件,复制并粘贴了您的代码,然后收到了一个解析器错误警报。“请求失败:parsererror”再次检查错误日志,返回的json应该没有任何问题。