Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Нужен простенький скрипт
цитата
26/03/08 в 13:47
 violar
Предположим, имеется некий список (TXT-файл) с "корявыми" урлами типа:

http://site.ru/page_1.html>[01]</a>
http://site.ru/page_2.html>[02]</a>111111
http://site.ru/page_3.html>[03]</a>22222222
http://site.ru/page_4.html>[04]</a>3333333
http://site.ru/page_5.html>[05]</a>444444
http://site.ru/page_6.html>[06]</a>55555555
http://site.ru/page_7.html>[07]</a>66666666
http://site.ru/page_8.html>[08]</a>77777
http://site.ru/page_9.html>[09]</a>88888
http://site.ru/page_10.html>[10]</a>99999

Нужно, чтобы скрит удалял из такого списка весь мусор, содержащийся в строках после ".html". То есть, чтобы в результате получалось так:

http://site.ru/page_1.html
http://site.ru/page_2.html
http://site.ru/page_3.html
http://site.ru/page_4.html
http://site.ru/page_5.html
http://site.ru/page_6.html
http://site.ru/page_7.html
http://site.ru/page_8.html
http://site.ru/page_9.html
http://site.ru/page_10.html

Помогите плиз, если не трудно. Заранее спасибо.
цитата
26/03/08 в 14:40
 sotiris
самый простой способ: открываешь этот тхт файл в экселе, делаешь знак & разделителем, и у тебя урлы будут в первом столбце
цитата
26/03/08 в 14:55
 lega_cobra
cut -d\& -f1 file_in.txt > file_out.txt
цитата
26/03/08 в 16:32
 violar
Цитата:
cut -d\& -f1 file_in.txt > file_out.txt


И что это означает? Куда и как это "втыкать"? Я же не программист icon_sad.gif
цитата
26/03/08 в 16:43
 alt
Код:
<?
$path_to_in_file = 'in.txt';
$path_to_out_file = 'out.txt';

$arr_list = file($path_to_in_file);
$w = fopen($path_to_out_file,"w");
foreach($arr_list as $link)
{
    $arr_res = parse_url($link);
    fwrite($w,'http://'.$arr_res['host'].$arr_res['path']."\n");
}
fclose($w);
?>
цитата
26/03/08 в 17:46
 violar
alt писал:
Код:
<?
$path_to_in_file = 'in.txt';
$path_to_out_file = 'out.txt';

$arr_list = file($path_to_in_file);
$w = fopen($path_to_out_file,"w");
foreach($arr_list as $link)
{
    $arr_res = parse_url($link);
    fwrite($w,'http://'.$arr_res['host'].$arr_res['path']."\n");
}
fclose($w);
?>


Что-то я не понял... Скрипт просто в конце всех ссылок дописывает двойное подчеркивание "__".

То есть, если было:
http://site.ru/page_1.html&gt;[1]&lt;/a&gt;

то делается:
http://site.ru/page_1.html&gt;[1]&lt;/a&gt;__

А нужно, чтобы делал:
http://site.ru/page_1.html
цитата
26/03/08 в 18:03
 Corex
Немного переделал вариант alt: (parse_url не верно работает из-за того, что нет знака вопроса):

Код:
<?php

$path_to_in_file = 'in.txt';
$path_to_out_file = 'out.txt';

$arr_list = file($path_to_in_file);
$w = fopen($path_to_out_file,"w");
foreach($arr_list as $link)
{
   $link = substr($link, 0, strpos($link, "&"));
    fwrite($w, $link."\r\n");
}
fclose($w);

?>
цитата
26/03/08 в 18:25
 violar
ADSenex писал:
Немного переделал вариант alt: (parse_url не верно работает из-за того, что нет знака вопроса):

Код:
<?php

$path_to_in_file = 'in.txt';
$path_to_out_file = 'out.txt';

$arr_list = file($path_to_in_file);
$w = fopen($path_to_out_file,"w");
foreach($arr_list as $link)
{
   $link = substr($link, 0, strpos($link, "&"));
    fwrite($w, $link."\r\n");
}
fclose($w);

?>


Этот вариант скрипта работает почти правильно. К сожалению, он удаляет из списка урлы, если они НЕ содержат в себе "мусора" (в файле 'in.txt'). Типа:

http://site.ru
http://site.ru/
http://site.ru/page.html

Нужно, чтобы такие "чистые" урлы в списке оставались, а не вылетали.
цитата
26/03/08 в 19:02
 alt
violar писал:
Этот вариант скрипта работает почти правильно. К сожалению, он удаляет из списка урлы, если они НЕ содержат в себе "мусора" (в файле 'in.txt'). Типа:

http://site.ru
http://site.ru/
http://site.ru/page.html

Нужно, чтобы такие "чистые" урлы в списке оставались, а не вылетали.



=))
делаешь так:

Код:
<?php

$path_to_in_file = 'in.txt';
$path_to_out_file = 'out.txt';

$arr_list = file($path_to_in_file);
$w = fopen($path_to_out_file,"w");
foreach($arr_list as $link)
{
   if(eregi("&",$link)) $link = substr($link, 0, strpos($link, "&"));
    fwrite($w, $link."\r\n");
}
fclose($w);

?>
цитата
26/03/08 в 23:34
 localhost
все намного проще:

Код:

<?
$in="1.txt";
$out="2.txt";

$z=fopen($out,"w");
foreach(file($in) as $str) {
fputs($z,substr($str,0,strpos($str,".html")+5)."\n");
}
fclose($z);
?>
цитата
27/03/08 в 00:07
 lega_cobra
violar писал:
И что это означает? Куда и как это "втыкать"?


Это командная строка unix. Специально придуманная фишка для "непрограммистов". icon_smile.gif Без всяких скриптов в один "пук" решается твоя задача. file_in.txt - текстовый файл с исходными урлами. file_out.txt - текстовый файл с результатом.

Цитата:
Я же не программист icon_sad.gif


Ну мне как-то отсюда не видно, сорри icon_smile.gif Ну раз уж не программист, то занимайся "скриптами" icon_smile.gif
цитата
27/03/08 в 00:47
 Kn
нотепад++
там замена с регэкспами есть
очень быстрый вариант
цитата
27/03/08 в 04:10
 alt
localhost писал:
все намного проще:



Нет, ты не прав, все намного проще
=)))

Код:

<?
$in="1.txt";
$out="2.txt";
$z=fopen($out,"w");
foreach(file($in) as $str) fputs($z,substr($str,0,strpos($str,".html")+5)."\n");
fclose($z);
?>
цитата
27/03/08 в 21:40
 violar
alt писал:


Код:
<?php

$path_to_in_file = 'in.txt';
$path_to_out_file = 'out.txt';

$arr_list = file($path_to_in_file);
$w = fopen($path_to_out_file,"w");
foreach($arr_list as $link)
{
   if(eregi("&",$link)) $link = substr($link, 0, strpos($link, "&"));
    fwrite($w, $link."\r\n");
}
fclose($w);

?>



Спасибо! Это именно то, что мне нужно...


Эта страница в полной версии