Рандомизация и обрезка количества строк.

Статус
В этой теме нельзя размещать новые ответы.

Levitt

Профессор
Регистрация
20 Май 2008
Сообщения
361
Реакции
43
Ребята, есть елементарный скрипт парсинга строк (линков) из файла. Идет присвоение переменной содержание файла1 и запись его в файл2. Можно ли в скрипте прикрутить рандомизацию строк и обрезку их по числу, например чтобы в файл2 сохранялось до 100 рандомизированых строк. Спасибо.
 
совершенно верно
 
гляньте что не так:
PHP:
<?php

$site_pars = 'http://site.com/links.txt';
$file = 'links.txt';

$text = array(file_get_contents( $site_pars ));

$rand_keys = array_rand($text, 50);
	$file = file($file);
	$fp=fopen($file, "w"); 
		fwrite($fp,$rand_keys);
	fclose($fp);
?>
 
попробуйте использовать вместо file_get_contents функцию file, которая возвращает массив строк
PHP:
$text = file( $site_pars );
так как в вашем случае получается массиво из одного элемента, содержащего весь контент из файла _http://site.com/links.txt
 
PHP:
rand_keys = array_rand($text, 50);
возвращает не значения массива, а его ключи.
аля

PHP:
<?php 

$site_pars = 'http://site.com/links.txt'; 
$file = 'links.txt'; 

$text = file($site_pars); 
$rand_keys = array_rand($text, 50); 
 $fp=fopen($file, "w");  
foreach ($rand_keys as $key) {
        fwrite($fp, $text[$key]); 
}
fclose($fp); 
?>

это как пример.
Учти, чтобы функция file могла читать ссылки, у тебя должна быть включена директива Allow_url_fopen
 
всеровно не работает с выше упомянотыми способами =(
Вся трабла с оглашением контента масивом. Плюс, сейчас появилась ещё елементараня задача прилепить к каждой строке обрамку <li></li>
 
PHP:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


Пропиши в начале скрипта, и вообще, понятие "не работает" многозначно, пиши конкретней.
 
Функция file считывает содержимое построчно.
Т.е., если у вас текстовый файл со ссылками является списком:
Код:
http://www.url1.com
http://www.url2.com
http://www.url3.com
...
http://www.url100.com
То функция file вам в самый раз:
PHP:
<?php
$file = 'list.txt';
$files_array = file($file, FILE_SKIP_EMPTY_LINES);
foreach($files_array as $url) {
      echo '<li>' . $url . '</li>';
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху