1

我希望有人能提供帮助,我目前正在为当地广播电台使用的 Wordpress 主题添加一些功能。我的查询是关于显示当前的直播节目标题,我写了一个 php 文件,当由标题更新表单处理时,用当前的节目标题(从 HTML 表单捕获)更新我的数据库中的一个表,但也捕获触发表单的用户 ID,然后继续使用节目标题更新 Shoutcast 服务器。

这背后的想法是允许我在网站上显示与当前现场 DJ 相关的动态 wordpress 内容 - 这可以工作并且没有问题,但我现在想做的是创建一个页面来检查 Shoutcast 的输出是否服务器标题与数据库中的表匹配,如果匹配,那么我希望它回显这个输出,如果它不同,我希望它使用 SC 标题的输出。

我目前有 2 个单独的脚本,可以根据触发的不同分别输出此信息,但我需要将这些信息组合起来(使用我假设的 if / else 命令?)这是我当前的尝试,但目前似乎没有输出 db 字段,并且只会从服务器输出 SC 标题;

<?php
require_once('../../wp-config.php'); // connection to WPdb
require_once('sc-config.php'); // connection to Shoutcast Server

$open = fsockopen($ip,$port); 
fputs($open,"GET /7.html HTTP/1.1\nUser-Agent:Mozilla\n\n"); 
$read = fread($open,1000); 
$text = explode(",",$read); 
$text = $text[6]; 

$query  = "SELECT title, userID FROM sc_options where id= '0'"; // grab current show          title and user id of the DJ that updated title from db

$result = mysql_query($query);

while($row = mysql_fetch_row($result))
{
    $onAir_Title = $row[0];
    $onAir_IMG = $row[1];

    if ($onAir_Title == $text)
    {
        // start output
        echo "$onAir_Title";
        echo get_avatar( $onAir_IMG, 96);
    } 
    else
    {
        echo "$text";
    }
}


?>

对不起,如果我犯了一个菜鸟错误,我正在努力学习 - 任何建议将不胜感激!

谢谢

编辑 - 这些是原始形式的脚本,都按原样工作;

这个检查数据库并显示输出 -

<?php
require_once('../../wp-config.php'); // open connection to WP

$query  = "SELECT title, userID FROM sc_options where id= '0'"; 

$result = mysql_query($query);


while($row = mysql_fetch_row($result))
{
$onAir_Title = $row[0];
$onAir_IMG = $row[1];

// output
echo "$onAir_Title";
echo get_avatar( $onAir_IMG, 96);
} 

?>

这个显示来自直播服务器的直播标题

<div style="Visibility: Hidden; Position: Absolute;"> 
<?php 
$open = fsockopen("198.154.106.116","6002"); 
if ($open) { 
fputs($open,"GET /7.html HTTP/1.1\nUser-Agent:Mozilla\n\n"); 
$read = fread($open,1000); 
$text = explode(",",$read); 
$text = $text[6]; 
} else { $text="connection refused."; } 
?> 
</div> 
<?php
echo "$text";
?>
4

1 回答 1

0

如果有人感兴趣,我设法完成了这项工作,我重新编写了如何在 SC 服务器上检查标题并最终让它工作..

<?php

/* ----------- Server configuration ---------- */

require_once('sc-config.php'); // Shoutcast 
require_once('../../wp-config.php'); // WPdb

/* ----- No need to edit below this line ----- */
/* ------------------------------------------- */
$fp = @fsockopen($ip,$port,$errno,$errstr,1); // Open connection to Shoutcast
if (!$fp) 
    { 
    echo "Connection refused"; // Displays when sever is offline
    } 
    else
    { 
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n"); // Get Stream Title
while (!feof($fp)) 
    {
    $info = fgets($fp);
    }
$info = str_replace('</body></html>', "", $info);
$split = explode(',', $info);

$query = "SELECT title, userID FROM sc_options where id = '1'"; // Grab last title  update from db table row
$result = mysql_query($query);
while($row = mysql_fetch_row($result))

$onAir_Title = $row[0]; // Create db show title string
$onAir_IMG = $row[1]; // User ID of last show update

if ($onAir_Title == $split[6]) // Check table row matches live stream title
    {
    echo $onAir_Title;

    echo get_avatar( $onAir_IMG, 96); // User ID
    }
else // If it doesn't match output the title from the SC server
    {
    $title = str_replace('\'', '`', $split[6]);
    $title = str_replace(',', ' ', $title);
    echo "$title"; // Displays song
    }
    }
?>
于 2013-06-15T12:31:20.510 回答