Помогите разобраться со скриптом

yaqoub

Новичок
Дело в том не получается скрипт не много переделать.
Нужно сделать так чтобы появлялась одна ссылка в случайном порядке.
Вот код:
$s = file($modul.'data.dat');
$index = rand(0, (count($s) - 1) );
$s[$index];

$d = fopen($modul.'data.dat', 'a+');
$a = $data;
fwrite($d, $a. "\r\n");
fclose($d);
record($uid, 0, $bll['price']);
exit($ok.'<b>Готово</b>');

Дело в том что не хочет работать, хотя в денвере работает.
И еще момент в начале этого файла стоит код:
if($_GET['t'] == 'get'){
$data = file_get_contents($modul.'data.dat');
if(empty($data)) $data = '<li><b>Тут может быть ваша ссылка...</b></li>';
exit($data);
}
Объясните если возможно почему в начале стоит file_get_contents, а в конце file.
Как мне кажется скрипт не работает из за file_get_contents.
Если заменить file_get_contents на file, то скрипт совсем не работает и на месте вывода ссылки пишет array.
Можно это как то исправить или нет
 

DIG

Новичок
Партнер клуба
Попробуй прочитать в мане про file() и file_get_contents(), возможно тогда станет ясно в чем их отличия и почему file() выдаёт array.
Вообще не пренебрегай маном, я всегда там много интересного нахожу.
 

xopagpuk

Профан - программист.
@yaqoub, Сбросьте в спойлер весь код программы и желательно задание ваше, потому что совсем не понятно что вы пытаетесь сделать и что просите помочь.
 
Последнее редактирование:

yaqoub

Новичок
Если весь скрипт со всеми модулями то это очень много.
Вот скрипт ротатора ссылок, который и не получается переделать:
<?php

/** --------
Ротатор ссылок

<div id="blk">Загрузка...</div>
<?endif?><script type="text/javascript">$('#blk').load('/php/ball/index.php?w=links&t=get');</script>
<?if($USER_LOGGED_IN$)?><hr> [ <a href="javascript://" onclick="b_links()" title="Отправить баллы">Добавить ссылку</a> ]
<script type="text/javascript" src="/php/ball/index.php?w=datamod&m=links"></script><?endif?>
-------- **/

if(empty($work)) exit('err'); # Защита от прямого вызова
if($_GET['t'] == 'get'){
$data = file_get_contents($modul.'data.dat');
if(empty($data)) $data = '<li><b>Тут может быть ваша ссылка...</b></li>';
exit($data);
}
if($uid == 0) exit($err.'<b>Войдите на сайт</b>');
if(!shield($work)) exit($err.'<b>Не так часто!</b>'); # Защита от частых запросов
$url = urldecode($_GET['url']);
$txt = urldecode($_GET['txt']);
$txt = trim(strip_tags($txt));
if(!preg_match('@^(http://)@', $url)) exit($err.'<b>Неправильная ссылка</b>');
if(strlen($txt) > $bll['maxlen']) exit($err.'<b>Макс. кол-во символов '.$bll['maxlen'].'</b>');
$txt = htmlspecialchars($txt);
if(empty($txt)) exit($err.'<b>Название пустое</b>');
$bls = getBall($uid);
if(empty($bls)) exit($err.'<b>Попробуйте позже</b>');
$bl = get($uid) + $bls;
if($bl < $bll['price']) exit($err.'<b>Недостаточно баллов</b>');
$data = '<li><b><a href="'.$url.'" target="_blank">'.$txt.'</a></b></li>';

$s = file($modul.'data.dat');
$s[0] = $data.PHP_EOL.$s[0];
$e = sizeof($s);
for($c = 0; $c != $e; $c++){
if($c >= $bll['max']-1) $s[$c] = '';
}
$d = fopen($modul.'data.dat', 'w');
foreach($s as $s_) fwrite($d, $s_.'');
fclose($d);
record($uid, 0, $bll['price']);
exit($ok.'<b>Готово</b>');
?>
На данный момент скрипт показывает 5 ссылок, при добавлении 6 ссылки последняя удаляется.
Вот хотел сделать одну ссылку в случайном порядке. Не получилось. Показывает все добавленные ссылки. Получается что файл открывается целиком.
 

yaqoub

Новичок
Забыл. Вот этот файл тоже завязан:
<?php


$___notjson = 1;

global $var;
$uid = ucoz_getinfo('SITEUSERID');
header('Content-Type: text/html; charset=utf-8');
$var = array(array(),array(),array());
$work = trim($_GET['w']); # Какую операцию провести
if(empty($work)) exit('err');

#### Конфиг
include 'config.php';

#### Подключаем стандартные функции
require('function.php');


/* ------ Спец. work */
# Получение изменений быллов
if($work == 'get') exit(get($_GET['i']));

# Возможность изменять баллы админу
if($work == 'change'){
if($uid != 1) exit('Нет прав доступа!');
$r = record($_GET['i'], $_GET['p'], $_GET['m']);
if($r !== true) exit($err.'<b>'.$r.'</b>');
exit($ok.'<b>Готово</b>');
}

# Получение списка модулей
# $USER_ID$, $MODUL$, $LOAD$, $ERR$, $OK$ - Доступные коды
if($work == 'listmod'){
$scan = scandir('moduls');
foreach($scan as $dir){
$config = 'moduls/'.$dir.'/config.bll';
if(!is_file($config) || $dir == '.'|| $dir == '..') continue;
$data = bll(file_get_contents($config));
if(!$data['switch'] || !$data['display']) continue;
nawvar('USER_ID', $uid, 'LOAD', $load, 'OK', $ok, 'ERR', $err, 'MODUL', $dir);
$decl = decl($data['price'], array('балл','балла','баллов'));
echo nawvar('<div class="hbl"><div class="ibl"><img src="'.$data['img'].'" width="32" height="32" alt="" border="0"></div><div class="cbl"><a href="javascript://" onclick="b_'.$dir.'()"><b>'.$data['name'].'</b></a><span class="b0"> - '.$decl.'</span><br>'.$data['message'].'</div></div>');
}
exit;
}


# Вызов молуля из списка
# $USER_ID$, $MODUL$, $LOAD$, $ERR$, $OK$ - Доступные коды
if($work == 'datamod' && $_GET['m']){
header('Content-Type: text/javascript; charset=utf-8');
nawvar('USER_ID', $uid, 'LOAD', $load, 'OK', $ok, 'ERR', $err);
if($_GET['m'] == 'allmod'){
$scan = scandir('moduls');
foreach($scan as $dir){
$config = 'moduls/'.$dir.'/config.bll';
if(!is_file($config) || $dir == '.'|| $dir == '..') continue;
$data = bll(file_get_contents($config));
if(!$data['switch'] || !$data['display']) continue;
nawvar('MODUL', $dir);
if(!$data['ajax']) $data['ajax'] = "align:'left',autosize:1";
echo nawvar("function b_".$dir."(){ new _uWnd('b_".$_GET['m']."','".$data['name']."',".$data['w_h'].",{".$data['ajax'].",oncontent:function(){".$data['js']."}},'".$data['html']."');}".PHP_EOL);
}
exit;
}
$config = 'moduls/'.$_GET['m'].'/config.bll';
if(!is_file($config)) exit('"config.bll" не обнаружен');
$data = bll(file_get_contents($config));
if(!$data['switch']) exit('Модуль не активен');
if(!$data['ajax']) $data['ajax'] = "align:'left',autosize:1";
nawvar('MODUL', $_GET['m']);
echo nawvar("function b_".$_GET['m']."(){ new _uWnd('b_".$_GET['m']."','".$data['name']."',".$data['w_h'].",{".$data['ajax'].",oncontent:function(){".$data['js']."}},'".$data['html']."');}");
exit;
}
/* ------ */


# Подключаем модуль
$modul = 'moduls/'.$work.'/';
if(!is_file($modul.'index.php')) exit('Такого мудуля не существует');
if(!is_file($modul.'config.bll')) exit('"config.bll" не обнаружен');
$config = file_get_contents($modul.'config.bll');
$bll = bll($config);
if(!$bll['switch']) exit('Модуль не активен');
require($modul.'index.php');

?>
 
Сверху