Ответ
 
Опции темы
Старый 10.09.2009, 15:38      #1
MorgaN
Firefox User
Пользователь Mozilla Firefox
 
Аватар для MorgaN
 
Регистрация: 08.02.2008
Адрес: Петрозаводск
Сообщений: 474
Вопрос php/Работа с текстом из echo

Здравствуйте!
Скажите пожалуйста как на php можно изменить полученный текст...
Вообщем:
есть страница test.php

PHP код:
<?php
echo file_get_contents("ftp://login:pass@test.ru/test2.php");
?>
Эта странца выводит примерно следующее:


Цитата:
<p> <a href=000001.htm target=_blank>000068</a> Разный текст
<p> <a href=000002.htm target=_blank>000068</a> Разный текст
<p> <a href=000003.htm target=_blank>000068</a> Разный текст
<p> <a href=000004.htm target=_blank>000068</a> Разный текст
<p> <a href=000005.htm target=_blank>000068</a> Разный текст
Нужно сделать так чтобы скрипт заменял 00000*.htm на test.ru/?test=00000*.png

Возможно ли это?
Помогите пожалуйста...
__________________
Не забудте нажать [спасибо] , если помог
Команда Grand Lions
MorgaN вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 10.09.2009, 15:56      #2
MDM
Администратор
[BATTLE]TEAM
Пользователь Mozilla Firefox
 
Аватар для MDM
 
Регистрация: 20.03.2006
Адрес: Петрозаводск (Ситилинк)
Возраст: 42
Сообщений: 5,589
По умолчанию

file_get_contents возвращает строку, а echo ее выводит. Обрабатывать надо ДО вывода, и лучше массив, а не строку.
Для получения содержимого файла в массиве пользуй file(). Затем пробегись по элементам этого массива и произведи замену. Думаю, лучше использовать regexp.
__________________
[BATTLE]SERVER
MDM вне форума Пол: Мужчина   Ответить с цитированием Вверх
Благодарности: 1
MorgaN (10.09.2009)
Старый 10.09.2009, 17:27      #3
MorgaN
Firefox User
Пользователь Mozilla Firefox
 
Аватар для MorgaN
 
Регистрация: 08.02.2008
Адрес: Петрозаводск
Сообщений: 474
Вопрос

Пробовал так:
PHP код:
<?php
// Получить содержимое файла в виде массива. В данном примере мы используем
// обращение по протоколу HTTP для получения HTML-кода с удаленного сервера.
$lines file ('ftp://login:pass@test.ru/test2.php');
// Осуществим проход массива и выведем номера строк и их содержимое в виде html-кода.
foreach ($lines as $line)
{
    
preg_match("[p][b][0-9][0-9][0-9][0-9][0-9][0-9][.][h][t][m]",$line,$replacement);
    echo 
preg_replace("[p][b][0-9][0-9][0-9][0-9][0-9][0-9][.][h][t][m]""redirect.php?htm=".$replacement[0], $line);
}
?>
бесконечно пишет:
Цитата:
Warning: preg_match() [function.preg-match]: Unknown modifier '[' in H:\home\10rus\www\test.php on line 8

Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in H:\home\10rus\www\test.php on line 9
потом так:
PHP код:
<?php
// Получить содержимое файла в виде массива. В данном примере мы используем
// обращение по протоколу HTTP для получения HTML-кода с удаленного сервера.
$lines file ('ftp://login:pass@test.ru/test2.php');
// Осуществим проход массива и выведем номера строк и их содержимое в виде html-кода.
foreach ($lines as $line)
{
    
preg_match("[p][b][0-9]{6}[.][h][t][m]",$line,$replacement);
    echo 
preg_replace("[p][b][0-9]{6}[.][h][t][m]""redirect.php?htm=".$replacement[0], $line);
}
?>
аналогично...
Помогите составить шаблон для pb******.htm
Спасибо...
__________________
Не забудте нажать [спасибо] , если помог
Команда Grand Lions

Последний раз редактировалось MorgaN; 10.09.2009 в 17:28.
MorgaN вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 10.09.2009, 17:45      #4
MDM
Администратор
[BATTLE]TEAM
Пользователь Mozilla Firefox
 
Аватар для MDM
 
Регистрация: 20.03.2006
Адрес: Петрозаводск (Ситилинк)
Возраст: 42
Сообщений: 5,589
По умолчанию

PHP код:
$line preg_replace('#([\d]+)(\.htm)+#''"http://test.ru/?test=\\1.png"'$line); 
__________________
[BATTLE]SERVER
MDM вне форума Пол: Мужчина   Ответить с цитированием Вверх
Благодарности: 1
MorgaN (10.09.2009)
Старый 10.09.2009, 18:17      #5
MorgaN
Firefox User
Пользователь Mozilla Firefox
 
Аватар для MorgaN
 
Регистрация: 08.02.2008
Адрес: Петрозаводск
Сообщений: 474
Вопрос

Сделал так:

PHP код:
<?php
// Получить содержимое файла в виде массива. В данном примере мы используем
// обращение по протоколу HTTP для получения HTML-кода с удаленного сервера.
$lines file ('ftp://login:pass@test.ru/test2.php');
// Осуществим проход массива и выведем номера строк и их содержимое в виде html-кода.
foreach ($lines as $line)
{  
    
preg_match('#(pb)(/[\d]+)(\.htm)+#',$line,$replacement);
    echo 
preg_replace('#(pb)(/[\d]+)(\.htm)+#''http://test.ru/?test=\\1.htm'$line);  
}
?>
pb******.htm
а должен
http://test.ru/?test=pb******.htm
__________________
Не забудте нажать [спасибо] , если помог
Команда Grand Lions

Последний раз редактировалось MorgaN; 10.09.2009 в 18:18.
MorgaN вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 10.09.2009, 18:24      #6
MDM
Администратор
[BATTLE]TEAM
Пользователь Mozilla Firefox
 
Аватар для MDM
 
Регистрация: 20.03.2006
Адрес: Петрозаводск (Ситилинк)
Возраст: 42
Сообщений: 5,589
По умолчанию

В цикле достаточно одной строки. Прежде, чем менять регулярное выражение, выучи, как это работает. В частности, что есть скобки.
PHP код:
foreach ($lines as $line)
{
     echo 
preg_replace('#([\d]+)(\.htm)+#''"http://test.ru/?test=\\1.png"'$line);

Было:
Код HTML:
<p> <a href=000001.htm target=_blank>000068</a> Разный текст
Стало:
Код HTML:
<p> <a href="http://test.ru/?test=000001.png" target=_blank>000068</a> Разный текст
__________________
[BATTLE]SERVER
MDM вне форума Пол: Мужчина   Ответить с цитированием Вверх
Благодарности: 1
MorgaN (10.09.2009)
Старый 10.09.2009, 18:32      #7
MorgaN
Firefox User
Пользователь Mozilla Firefox
 
Аватар для MorgaN
 
Регистрация: 08.02.2008
Адрес: Петрозаводск
Сообщений: 474
По умолчанию

Спасибо, теперь понятно... )
__________________
Не забудте нажать [спасибо] , если помог
Команда Grand Lions
MorgaN вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 13.12.2009, 22:55      #8
MorgaN
Firefox User
Пользователь Mozilla Firefox
 
Аватар для MorgaN
 
Регистрация: 08.02.2008
Адрес: Петрозаводск
Сообщений: 474
Сообщение

Возникла новая проблема, никак не могу совладать с этими выражениями...
Вообщем нужно выдрать из переменной $test (она содержит html код страницы), все ссылки такого вида и запихать их в массив:
Код:
<a href="http://78.108.179.238/downloadp1/c97cd3605464_915997984/585650/letitbit.net/temp.rar" title="Ваша ссылка на скачивание файла" target="_self"><b><u>Ваша ссылка на скачивание файла</u></b></a>
Известно только имя temp.rar, всё остальное меняется...
Брать нужно только саму ссылку:
Код:
http://78.108.179.238/downloadp1/c97cd3605464_915997984/585650/letitbit.net/temp.rar
__________________
Не забудте нажать [спасибо] , если помог
Команда Grand Lions

Последний раз редактировалось MorgaN; 14.12.2009 в 13:22.
MorgaN вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 15.12.2009, 00:53      #9
MorgaN
Firefox User
Пользователь Mozilla Firefox
 
Аватар для MorgaN
 
Регистрация: 08.02.2008
Адрес: Петрозаводск
Сообщений: 474
Сообщение

Сделал так:
PHP код:
preg_match('/http:\/\/[0-9,a-z,A-Z,.,\/,_]*'.$name.'/'$TextBody$TempRegExp); 
__________________
Не забудте нажать [спасибо] , если помог
Команда Grand Lions
MorgaN вне форума Пол: Мужчина   Ответить с цитированием Вверх
Ответ

Метки
php


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстом: Создание файлов помощи Slava BattleSoft Navigator 0 17.11.2009 11:47
Работа с текстом: Работа с файлами DjVu Slava BattleSoft Navigator 0 17.11.2009 11:37
Работа с текстом: Органайзер Slava BattleSoft Navigator 0 17.11.2009 09:23
Работа с текстом: Клавиатурный тренажер Slava BattleSoft Navigator 0 17.11.2009 09:13
ECHO - Secrets of The Lost Cavern Враг Культуры Adventure 3 22.08.2009 21:54


Обратная связь
Текущее время: 01:19. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot