|
|
|
| Здравствуйте какую функцию в php лучше использовать для удаления части строки
пусть у меня есть такая строка
$str = ' <P><STRONG><A href=\"/lessons.php\">Уроки Photoshop</A></STRONG> » <STRONG><A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A></STRONG></P><BR>
<H1 style=\"TEXT-ALIGN: center\">Создаём абстрактное золотое кольцо в Фотошоп</H1>
<P align=left>В этом уроке я покажу вам, как создать абстрактную золотую сферу с эффектом дыма.</P>
<P align=center><IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>
<P>Для урока вам понадобятся <A href=\"http://qbrushes.net/smoke-fire/revnart-smoke-brushes/\">специальные кисти</A>.</P> '
|
и мне нужно удалить из неё этот участок кода (он в конце строки)
<IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>
<P>Для урока вам понадобятся <A href=\"http://qbrushes.net/smoke-fire/revnart-smoke-brushes/\">специальные кисти</A>.</P>
|
Что здесь для удаления лучше использовать? | |
|
|
|
|
|
|
|
для: pautina
(01.03.2012 в 15:18)
| | Лучше всего найти точку вхождения <IMG с конца при помощи функции strrpos(), а затем используя это значение вырезать из строки начало при помощи функции substr(). | |
|
|
|
|
|
|
|
для: cheops
(01.03.2012 в 15:38)
| | А как быть если нужно удалить определённый участок в центре кода строки
пусть исходная строка
$str = ' <P><STRONG><A href=\"/lessons.php\">Уроки Photoshop</A></STRONG> » <STRONG><A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A></STRONG></P><BR>
<H1 style=\"TEXT-ALIGN: center\">Создаём абстрактное золотое кольцо в Фотошоп</H1>
<P align=left>В этом уроке я покажу вам, как создать абстрактную золотую сферу с эффектом дыма.</P>
<P align=center><IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>
<P>Для урока вам понадобятся <A href=\"http://qbrushes.net/smoke-fire/revnart-smoke-brushes/\">специальные кисти</A>.</P> '
|
пусть
$findme_one='<A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A>';
$findme_dva='<P align=center><IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>'
|
и нужно удалить весь код между $findme_one и $findme_dva | |
|
|
|
|
|
|
|
для: pautina
(01.03.2012 в 16:21)
| | Точно также находите при помощи strpos() позиции этих строк, а при помощи substr() берете голову строки и хвостик, потом соединяете их вместе. Ну плюс ко всему из результата нужно будет удалить $findme_dva (str_replace). | |
|
|
|
|
|
|
|
для: cheops
(01.03.2012 в 16:51)
| |
$findme_one='<A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A>';
$pos_findme_one=strpos($str, $findme_one);
$newstr_one = substr($str, 0, $pos_findme_one); // часть строки от 0 символа до позиции $findme_one
$findme_dva='<P align=center><IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>';
$pos_findme_dva=strpos($str, $findme_dva);
$newstr_dva = substr($str, $pos_findme_dva); // часть строки от символа $findme_dva до конца строки
|
теперь нужно объединить строки $newstr_one и $newstr_dva что использовать для объединения | |
|
|
|
|
|
|
|
для: pautina
(01.03.2012 в 18:25)
| | Для этого используется оператор точка
<?php
echo $newstr_one.$newstr_dva;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(01.03.2012 в 19:42)
| | А как быть если строка у нас представляет текст запроса
$str = '
CREATE TABLE IF NOT EXISTS material_content_into49 (
`ID` VARCHAR(255),
`Field 1` VARCHAR(255),
`Field 2` VARCHAR(255),
`Field 3` longtext) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT IGNORE INTO material_content_into49 (`ID`,`Field 1`,`Field 2`,`Field 3`) VALUES
('1','Уроки Photoshop','Рубрика: Эффекты','<DIV class=TextInside><BR><A id=printPage href="http://www.photoshop-master.ru/lessons.php?rub=3&id=1055\"><IMG alt=распечатать src=\"/img/print.png\"></A>
<P><STRONG><A href=\"/lessons.php\">Уроки Photoshop</A></STRONG> » <STRONG><A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A></STRONG></P><BR>
<H1 style=\"TEXT-ALIGN: center\">Создаём абстрактное золотое кольцо в Фотошоп</H1>
<P align=left>В этом уроке я покажу вам, как создать абстрактную золотую сферу с эффектом дыма.</P>
<P align=center><IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>
<P>Для урока вам понадобятся <A href=\"http://qbrushes.net/smoke-fire/revnart-smoke-brushes/\">специальные кисти</A>.</P>
<P><STRONG>Шаг 1.</STRONG> Создаем новый документ любого размера с черным фоном. Создаем новый слой и берем <STRONG>Elliptical </STRONG><STRONG>Marquee </STRONG><STRONG>Tool</STRONG> <IMG height=23 src=\"tools/Elliptical Marquee.jpg\" width=27> (Овальное выделение) (M) с такими параметрами:</P>
<P align=center><IMG height=33 src=\"/lessons/les1689/02.jpg\" width=442></P>
<P>Зажимаем клавишу SHIFT и рисуем окружность, как показано ниже:</P>
...// участки кода
...// участки кода
<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>
<DIV style=\"TEXT-ALIGN: center\"><IMG height=48 alt=\"\" src=\"orphus/Oleg_Fadjarov_btn4.gif\" width=257></DIV><BR>
<DIV class=Created id=favorite><IMG src=\"images/ajax-loader.gif\"><SPAN>Добавить в закладки (личный кабинет)</SPAN> </DIV>
<DIV class=Created id=sharedButtons style=\"PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 5px; PADDING-TOP: 5px\">
...// участки кода
...// участки кода
<DIV class=Comment2SmoothBottomRight> </DIV></DIV></DIV></DIV><!-- / Comment --><A class=view_user_job href=\"ajax_block/view_job.php?id=407233\" rel=comment></A><A class=view_user_job href=\"ajax_block/view_job.php?id=391427\" rel=comment></A><A class=view_user_job href=\"ajax_block/view_job.php?id=391327\" rel=comment></A><A cla'),
('2','Уроки Photoshop','Рубрика: Эффекты','<DIV class=TextInside><BR><A id=printPage href=\"http://www.photoshop-master.ru/lessons.php?rub=3&id=1055\"><IMG alt=распечатать src=\"/img/print.png\"></A>
<P><STRONG><A href=\"/lessons.php\">Уроки Photoshop</A></STRONG> » <STRONG><A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A></STRONG></P><BR>
<H1 style=\"TEXT-ALIGN: center\">Создай экспрессивную космическую иллюстрацию в Фотошоп</H1>
<P>В этом уроке Photoshop, вы узнаете, как, используя различные техники, создать экспрессивную иллюстрацию, наполненную винтажным духом.</P>
<P>Вы узнаете, как применить несколько техник и эффектов, включая световые эффекты. Кроме техники исполнения, вы узнаете, как совместить цветовые оттенки, чтобы сделать сцену более драматичной. Некоторые шаги могут быть полезными для новичков, но почему бы не попробовать?</P>
<P>Как обычно, вы узнаете много интересного и полезного в этом уроке. Если вы хотите перейти на следующий уровень мастерства и поднять уровень своих знаний, этот урок Photoshop отлично подходит для вас. Давайте приступим!</P>
<P><A href=\"http://www.icanbecreative.com/res/space-lady/cosmolady_final.jpg\"><STRONG>Итоговый результат</STRONG></A></P>
<P align=center><IMG height=547 src=\"/lessons/les1677/1.jpg\" width=450></P>
...
<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>
...// участки кода
...// участки кода
<DIV class=CommentSmoothTopLeft>
<DIV cl'),
('3','Уроки Photoshop','Рубрика: Эффекты','<DIV class=TextInside><BR><A id=printPage href=\"http://www.photoshop-master.ru/lessons.php?rub=3&id=1055\"><IMG alt=распечатать src=\"/img/print.png\"></A>
<P>
...// участки кода
...// участки кода
Жирным шрифтом выделены нужные нам участки
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';
$pos_findme_one=strpos($str, $findme_one);
$newstr_one = substr($str, 0, $pos_findme_one); // часть строки от 0 символа до позиции $findme_one
$findme_dva=''),('2'';
$pos_findme_dva=strpos($str, $findme_dva);
$newstr_dva = substr($str, $pos_findme_dva); // часть строки от символа $findme_dva до конца строки
$newstr_one - шапка строки
$newstr_dva - конец строки
$findme_dva=''),('2''; нужно описать регулярным выражением
$findme_dva=''),('[0-9]'';
| - правильна ли запись
Воможно ли
- объединить переменные $newstr_one и $newstr_dva чтоб не 2 переменных были а одна $newstr например
и можно ли
- переменную $newstr описать как элемент массива (т.к сама строка это текст запроса, а записей в ней может быть 50 штук, чтоб для каждой записи был свой индекс)/STRONG | |
|
|
|
|
|
|
|
для: pautina
(02.03.2012 в 06:10)
| | На мой взгляд задача интересна, давайте попробуем её сделать
Исходная строка из которой нужно вырезать код между $findme_one и $findme_dva такая
$str = '
CREATE TABLE IF NOT EXISTS material_content_into49 (
`ID` VARCHAR(255),
`Field 1` VARCHAR(255),
`Field 2` VARCHAR(255),
`Field 3` longtext) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT IGNORE INTO material_content_into49 (`ID`,`Field 1`,`Field 2`,`Field 3`) VALUES
('1','Уроки Photoshop','Рубрика: Эффекты','<DIV class=TextInside><BR><A id=printPage href="http://www.photoshop-master.ru/lessons.php?rub=3&id=1055\"><IMG alt=распечатать src=\"/img/print.png\"></A>
<P><STRONG><A href=\"/lessons.php\">Уроки Photoshop</A></STRONG> » <STRONG><A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A></STRONG></P><BR>
<H1 style=\"TEXT-ALIGN: center\">Создаём абстрактное золотое кольцо в Фотошоп</H1>
<P align=left>В этом уроке я покажу вам, как создать абстрактную золотую сферу с эффектом дыма.</P>
<P align=center><IMG height=262 src=\"/lessons/les1689/01.jpg\" width=450></P>
<P>Для урока вам понадобятся <A href=\"http://qbrushes.net/smoke-fire/revnart-smoke-brushes/\">специальные кисти</A>.</P>
<P><STRONG>Шаг 1.</STRONG> Создаем новый документ любого размера с черным фоном. Создаем новый слой и берем <STRONG>Elliptical </STRONG><STRONG>Marquee </STRONG><STRONG>Tool</STRONG> <IMG height=23 src=\"tools/Elliptical Marquee.jpg\" width=27> (Овальное выделение) (M) с такими параметрами:</P>
<P align=center><IMG height=33 src=\"/lessons/les1689/02.jpg\" width=442></P>
<P>Зажимаем клавишу SHIFT и рисуем окружность, как показано ниже:</P>
...// участки кода
...// участки кода
<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>
<DIV style=\"TEXT-ALIGN: center\"><IMG height=48 alt=\"\" src=\"orphus/Oleg_Fadjarov_btn4.gif\" width=257></DIV><BR>
<DIV class=Created id=favorite><IMG src=\"images/ajax-loader.gif\"><SPAN>Добавить в закладки (личный кабинет)</SPAN> </DIV>
<DIV class=Created id=sharedButtons style=\"PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 5px; PADDING-TOP: 5px\">
...// участки кода
...// участки кода
<DIV class=Comment2SmoothBottomRight> </DIV></DIV></DIV></DIV><!-- / Comment --><A class=view_user_job href=\"ajax_block/view_job.php?id=407233\" rel=comment></A><A class=view_user_job href=\"ajax_block/view_job.php?id=391427\" rel=comment></A><A class=view_user_job href=\"ajax_block/view_job.php?id=391327\" rel=comment></A><A cla'),
('2','Уроки Photoshop','Рубрика: Эффекты','<DIV class=TextInside><BR><A id=printPage href=\"http://www.photoshop-master.ru/lessons.php?rub=3&id=1055\"><IMG alt=распечатать src=\"/img/print.png\"></A>
<P><STRONG><A href=\"/lessons.php\">Уроки Photoshop</A></STRONG> » <STRONG><A href=\"/lessons.php?rub=1\">Рубрика: Эффекты</A></STRONG></P><BR>
<H1 style=\"TEXT-ALIGN: center\">Создай экспрессивную космическую иллюстрацию в Фотошоп</H1>
<P>В этом уроке Photoshop, вы узнаете, как, используя различные техники, создать экспрессивную иллюстрацию, наполненную винтажным духом.</P>
<P>Вы узнаете, как применить несколько техник и эффектов, включая световые эффекты. Кроме техники исполнения, вы узнаете, как совместить цветовые оттенки, чтобы сделать сцену более драматичной. Некоторые шаги могут быть полезными для новичков, но почему бы не попробовать?</P>
<P>Как обычно, вы узнаете много интересного и полезного в этом уроке. Если вы хотите перейти на следующий уровень мастерства и поднять уровень своих знаний, этот урок Photoshop отлично подходит для вас. Давайте приступим!</P>
<P><A href=\"http://www.icanbecreative.com/res/space-lady/cosmolady_final.jpg\"><STRONG>Итоговый результат</STRONG></A></P>
<P align=center><IMG height=547 src=\"/lessons/les1677/1.jpg\" width=450></P>
...
<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>
...// участки кода
...// участки кода
<DIV class=CommentSmoothTopLeft>
<DIV cl'),
('3','Уроки Photoshop','Рубрика: Эффекты','<DIV class=TextInside><BR><A id=printPage href=\"http://www.photoshop-master.ru/lessons.php?rub=3&id=1055\"><IMG alt=распечатать src=\"/img/print.png\"></A>
<P>
...// участки кода
...// участки кода
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';
$pos_findme_one=strpos($str, $findme_one);
$newstr_one = substr($str, 0, $pos_findme_one); // часть строки от 0 символа до позиции $findme_one
$findme_dva=''),('2'';
$pos_findme_dva=strpos($str, $findme_dva);
$newstr_dva = substr($str, $pos_findme_dva); // часть строки от символа $findme_dva до конца строки
можно ли
- описать $findme_dva регулярным выражением $findme_dva=''),('[0-9]''; и после для него делать урезание строки $newstr_dva = substr($str, $pos_findme_dva);
- объединить переменные $newstr_one и $newstr_dva чтоб не 2 переменных были а одна $newstr например
- переменную $newstr описать как элемент массива (т.к сама строка это текст запроса, а записей в ней может быть 50 штук, чтоб для каждой записи был свой индекс)
ни поможете с вопросами? | |
|
|
|
|
|
|
|
для: pautina
(02.03.2012 в 13:54)
| | ни проверите участок кода
$newstr_one=array();
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';
$pos_findme_one=strpos($str, $findme_one);
$newstr_one[] = substr($str, 0, $pos_findme_one); // часть строки от 0 символа до позиции $findme_one
$newstr_dva=array();
$findme_dva="'),('[0-9]'";
$pos_findme_dva=strpos($str, $findme_dva);
$newstr_dva[] = substr($str, $pos_findme_dva); // часть строки от символа $findme_dva до конца строки
$itog_str=$newstr_one.$newstr_dva;
print_r($itog_str);
|
Правильно ли массив описан?
Правильно ли описано регулярное выражение $findme_dva="'),('[0-9]'"; | |
|
|
|
|
|
|
|
для: pautina
(02.03.2012 в 17:50)
| | Ни могли бы вы проверить этот участок кода
for ($i=0; $i<=10; $i++);
{
$newstr_one=array();
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';
$pos_findme_one=strpos($str, $findme_one);
$newstr_one[$i] = substr($str, 0, $pos_findme_one); // часть строки от 0 символа до позиции $findme_one
for ($n=0; $n<=10; $n++);
{
if ($i=$n)
{
$newstr_dva=array();
$findme_dva="'),('$n'";
$pos_findme_dva=strpos($str, $findme_dva);
$newstr_dva[$i] = substr($str, $pos_findme_dva); // часть строки от символа $findme_dva до конца строки
$itog_str=$newstr_one.$newstr_dva;
}
}
}
print_r($itog_str);
|
Нет ли здесь ошибок? | |
|
|
|
|
|
|
|
для: pautina
(03.03.2012 в 08:25)
| | Почему не отвечаете,
мы почти все с вами разобрали, 1 скрипт остался.
я просто скрипт проверить не могу из за записи строки в одинарных и двойных кавычках, чтоб это решить потом нужно будет не из строки а из текстового файла удаление делать.
for ($i=0; $i<=10; $i++);
{
$newstr_one=array();
$findme_one='<P>Данный урок подготовлен для Вас командой сайта <A href=\"http://www.photoshop-master.ru\">http://www.photoshop-master.ru</A></P>';
$pos_findme_one=strpos($str, $findme_one);
$newstr_one[$i] = substr($str, 0, $pos_findme_one); // часть строки от 0 символа до позиции $findme_one
for ($n=0; $n<=10; $n++);
{
if ($i=$n)
{
$newstr_dva=array();
$findme_dva="'),('$n'";
$pos_findme_dva=strpos($str, $findme_dva);
$newstr_dva[$i] = substr($str, $pos_findme_dva); // часть строки от символа $findme_dva до конца строки
$itog_str=$newstr_one.$newstr_dva;
}
}
}
print_r($itog_str);
|
Синтаксис этого участка кода правилен? | |
|
|
|
|
|
|
|
для: pautina
(03.03.2012 в 17:55)
| | Какие-то ошибки выводятся? Если нет, значит синтаксис правильный. | |
|
|
|
|
|
|
|
для: cheops
(03.03.2012 в 18:08)
| | Нет ошибки не выводятся,
не подскажете как мне этот участок кода применить к текстовому файлу file.txt например | |
|
|
|
|
|
|
|
для: pautina
(04.03.2012 в 07:42)
| | Т.е. вам содержимое файла нужно поместить в переменную $str? Тогда удобнее всего это сделать при помощи функции file_get_contents(). | |
|
|
|
|