Всем Хаюшки! Пытаюсь вывести изображение(curl) которое обновляется каждую секунду, но выходят кракозябры, �PNG IHDR���. Большая просьба помочь, много что перепробовал, менял header, content type и др. код HTML +Ajax Код (Text): <html> <head> <meta charset="utf-8" > <script type="text/javascript" src="jquery.js"></script> <title> test</title> </head> <body> <div id="content" type="text/javascript"></div> <script> function show() { $.ajax({ url: "get_map.php", cache: false, success: function(html){ $("#content").html(html); } }); } $(document).ready(function(){ show(); setInterval('show()',1000); }); </script> </body> </html> Код PHP curl Код (Text): <?php header('Content-type: image/png'); define('ZABBIX_URL', 'http://localhost'); define('ZABBIX_USER', '***'); define('ZABBIX_PW', '***'); define('MAP_URL', ZABBIX_URL . '***'); define('MAP_USER', '***'); define('MAP_PASS', '***'); if($_SERVER['PHP_AUTH_USER'] != MAP_USER || $_SERVER['PHP_AUTH_PW'] != MAP_PASS) { header('WWW-Authenticate: Basic realm=" @( * O * )@ "'); header('HTTP/1.0 401 Unauthorized'); exit; } set_time_limit(30); chdir(dirname(__FILE__)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ZABBIX_URL . 'index.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array('name'=>ZABBIX_USER, 'password'=>ZABBIX_PW,'enter'=>'Sign in', 'autologin'=>1)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookie.txt"); $t = curl_exec($ch); curl_setopt($ch, CURLOPT_URL, MAP_URL); curl_setopt($ch, CURLOPT_HEADER, 0); $file = curl_exec($ch); echo $file; curl_close($ch); ?>
имеете ввиду в файле get_map.php <img src="<?php ..... ?>"> </img>, сделал так , снова символы выводит , только другие 1cЖЊQЈFхы‰
а когда переходишь на get_map.php картинку видишь? сперва так добейся нормально работы, и как ты видишь содержание файла если грузил изображение через img тег?
Когда перехожу на get_map.php картинка есть, когда перехожу на страницу html то вижу как символы ...��... обновляются по заданному интервалу, второй вопрос не понял.
когда в html пробовал подключать картинку <img src='get_map.php' id="content"></img> то она выводится 1 раз и не обновляется, код html и php в первом сообщении.
вот если через тег работает, дай img тегу id и обновляй только src атрибут, ну и чтобы не кэшировалось, отправляй заголовки или добавь случайный параметр get_map.php?nocache=23 или http://api.jquery.com/jquery.ajax/ смотри cache
cделал, выводит пустоту.. Код (Text): <img src="" id="content"></img> <script> function show() { $.ajax({ url: "get_map.php", cache: false, success: function(html){ $("#content").attr('src','get_map.php?'+ Math.random()); } }); } $(document).ready(function(){ show(); setInterval('show()',1000); }); </script> Код (Text): <?php header('Content-type: image/png'); header("Cache-Control: no-cache, must-revalidate"); define('ZABBIX_URL', 'http://172.16.3.16/zabbix/'); define('ZABBIX_USER', 'api'); define('ZABBIX_PW', 'api'); define('MAP_URL', ZABBIX_URL . 'map.php?noedit=1&sysmapid=1'); define('MAP_USER', 'map'); define('MAP_PASS', 'map'); if($_SERVER['PHP_AUTH_USER'] != MAP_USER || $_SERVER['PHP_AUTH_PW'] != MAP_PASS) { header('WWW-Authenticate: Basic realm=" @( * O * )@ "'); header('HTTP/1.0 401 Unauthorized'); exit; } set_time_limit(30); chdir(dirname(__FILE__)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ZABBIX_URL . 'index.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array('name'=>ZABBIX_USER, 'password'=>ZABBIX_PW,'enter'=>'Sign in', 'autologin'=>1)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookie.txt"); $t = curl_exec($ch); curl_setopt($ch, CURLOPT_URL, MAP_URL); curl_setopt($ch, CURLOPT_HEADER, 0); $file = curl_exec($ch); echo $file; curl_close($ch); ?>
а по какому пути идёт запрос картинки? может так надо attr('src','/get_map.php?' и функцию сократи Код (PHP): function show() { $("#content").attr('src','/get_map.php?'+ Math.random()); }