Вопрос

Fars

Мастер
Регистрация
26 Июн 2009
Сообщения
348
Реакции
33
Есть код, выводящий рандомно строки из тхт файла:

Код будет стоять на ВП.

Как сделать, чтобы вместо "www.site.ru" скрипт сам ставил нужную домашнюю директорию сайта?
 
А смысл то какой? :confused: Пропишите один раз руками нужный адрес и пользуйте его... Другое дело если вы хотите один раз вытянуть текст со стороннего сайта на свой (например если сайт в локалке а инфа динамично меняется через определённый промежуток времени как то праздники), а потом информацию вытягивать уже из своего локального файла...
 
dixi, так не работает. нужен полный урл к файлу.

dino, отличное решение, как я сразу не догадался.. а по теме есть варианты?
 
вот так но должно быть еще начало всей этой конструкции вы его п видимому не выложили
 
  • Нравится
Реакции: Fars
Ну например так я реализовал вытягивание с башорга страницы со случайными фразами для локальной сетки, работающей через проксю
Для начала создаёшь файл под названием time.txt здесь будет храниться время последнего скачивания инфы со стороннего сайта
bash.txt - тут будет храниться инфа стянутая со стороннего сайта
файлам присваиваешь права 777 для возможности их перезаписи
исполняемый файл, назовем например bash.php, выглядит следующим образом:
PHP:
$fileTimeName="http://адрес_твоего_сервера/bash_random_panel/time.txt";
$timeRead=fopen("$fileTimeName", "r");  
$lastTime=fread($timeRead, filesize("$fileTimeName"));//вычитываем время последнего обновления
fclose($timeRead);
if (($lastTime+7200)< time()){ //если времени прошло больше чем установленный промежуток то скачиваем новую инфу со стороннего сайта
$proxy = "10.3.102.165"; //адрес локального прокси сервера с которого есть доступ в интернет
$port = 8080; // порт прокси сервера
$url = "http://bash.org.ru/random"; // адрес стороннего сайта
$fp = @fsockopen($proxy, $port, $errno, $errstr, 10);
@fwrite($fp, "GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");//выдираем новую инфу
$opens = '';
while(!@feof($fp)){
  $opens .= @fgets($fp, 100);
}
fclose($fp);

// разбиваем заголовки и body
$exp = explode( "\r\n\r\n", $opens, 2 );
if ( isset( $exp[1] ) )
{
  $opens = $exp[1];
}
// убираем из полученного файла все лишнее, оставляя только то что нужно
$quotes = ('#<div>(.*)</div>#ims');
preg_match_all($quotes, $opens, $outs);
$fileBashName= "http://адрес_твоего_сервера/bash_random_panel/bash.txt";
for($i = 0; $i < count($outs[1]); $i++) {

$bash = $outs[1][$i];

//---------------------
$hdl=fopen($fileBashName, "w");
fwrite($hdl, $bash); //сохраняем отредактированный  текст в нужный файл
fclose($hdl);
//-------------------
	}
$fileTimeName="http://адрес_твоего_сервера/bash_random_panel/time.txt";
$time=time();
$timeWrite=fopen("$fileTimeName", "w");
fwrite($timeWrite, $time); //обновляем в файле время последнего обновления информации
fclose($timeWrite);
}
//Дальше выдаем случайную фразу из локального файла
$fileBashName= "http://адрес_твоего_сервера/bash_random_panel/bash.txt";
$fsize=filesize($fileBashName);
if(!$fsize){die('Ошибка!!!');}
$debfile=fopen($fileBashName, "rt");
$text=fread($debfile,$fsize);
$count = preg_match_all('@[^<div>(.*)<script(.*)</div>]<div>(.*)</div>@',$text,$matches);
echo $matches[0][rand(0,$count-1)];//собсно, выборка цитаты.
fclose($debfile);
Надеюсь из этого ты выберешь все что тебе нужно...
Ногами прошу меня крепко не пинать код был написан на заре моего "творчества" :) Кое что я бы сейчас поменял, но харит жутко:D тем более что все работает...
 
вот так но должно быть еще начало всей этой конструкции вы его п видимому не выложили*** скрытое содержание ***

Нет, код полностью рабочий. Отлично справляется с дерганием фраз.:ay:
А как его доработать, чтобы он из указанной папки наугад дергал картинки?

dino, чего именно делает твой скрипт? может найдется ему применение. Тут ветка php для начинающих, комментировать каждую строчку придется, чтобы польовать можно было.
 
Скрипт раз в два часа парсит с башорга страницу с рандомными цитатами, чистит все лишнее и ложит в текстовый документ на локальном сервере. Все остальное время выдает на экран, из сохраненного на локальном сервере файла, случайным образом выбранную цитату...
 
А как его доработать, чтобы он из указанной папки наугад дергал картинки?
PHP:
<?php
$handle = opendir($_SERVER['DOCUMENT_ROOT']."/images/");
while($file = readdir($handle))
{
  if ($file != '.' && $file != '..')
  {
    $filename[$i] = $file; 
	$i++;
  }
}
shuffle($filename);
if(isset($filename[0])) $img = $filename[0]; //в $img имя случайной картинки
примерно так
 
  • Нравится
Реакции: Fars
Назад
Сверху