[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как после абзаца вставить? (регулярные выражения)
Crash2007
здравствуйте =)

помогите составить регулярное выражение..чтобы после первого абзаца вставить "что то"?

пример абзаца:
<p>ololo</p>
<p>ololo2</p>

помогите..кому не трудно.. unsure.gif



Спустя 13 минут, 24 секунды (5.04.2011 - 20:45) eXaM написал(а):
Если интересует именно алгоритм, то я бы использовал preg_replace, передав ему первым аргументом нечто вроде #$<p>(.*)</p>^#, вторым '#$<p>$1</p>' . $a . '^#', а третьим единичку, при этом $a — то, что дописываем после первого абзаца. Хотя я вполне могу ошибаться, я сам новичок.

Спустя 3 минуты, 59 секунд (5.04.2011 - 20:49) Игорь_Vasinsky написал(а):
чтобы "вставить" можно встать "сзади" biggrin.gif

Спустя 2 минуты, 25 секунд (5.04.2011 - 20:51) eXaM написал(а):
Зачем? При наличии фантазии и определенной физической подготовки вставать можно с любой стороны. Ключевое слово тут не где, а что сделать (я о вашем сообщении).

Спустя 3 минуты, 20 секунд (5.04.2011 - 20:55) alex12060 написал(а):
Вставить с помощью регулярного выражения? Я что-то не доганяю.


До:

<p></p>


После:

<p>test</p>


Так?

Спустя 50 секунд (5.04.2011 - 20:55) Игорь_Vasinsky написал(а):
как что делать???

ВСТАВЛЯТЬ

ну слышал я там по никрофилов и зоофилов и ещё кто то есь, ну чтоб АБЗАЦУ....
biggrin.gif biggrin.gif biggrin.gif laugh.gif laugh.gif

Спустя 3 минуты, 44 секунды (5.04.2011 - 20:59) alex12060 написал(а):
Игорь_Vasinsky

Я тут в чате читал недавно, что у Almaz'а отличное настроение, но, походу дела, он не один такой :D

По сути:


$test = '<p>dgsd</p>';

var_dump(preg_replace("#<p>.*<\/p>#", 'test', $test));

Спустя 9 секунд (5.04.2011 - 20:59) eXaM написал(а):
alex12060, нет. Он имеет в виду что-то вроде:

До:
<h1>Проблема</h1>
<p>
В США половина детей весит больше, чем все население Вьетнама</p>
<p>
Отправить американских детей во Вьетнам</p>

После:
<h1>Проблема</h1>
<p>
В США половина детей весит больше, чем все население Вьетнама</p>
<h1>
Решение:</h1>
<p>
Отправить американских детей во Вьетнам</p>

Спустя 1 минута, 5 секунд (5.04.2011 - 21:00) alex12060 написал(а):
Ах так? Тут регулярки не под силу.
Яваскрипт в руки, а точнее, JQuery.

Спустя 2 минуты, 25 секунд (5.04.2011 - 21:03) alex12060 написал(а):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>
Гостевая книга 1.0</title>
<meta
http-equiv="content-type" content="text/html; charset=windows-1251" />
<script
type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script>

$(document).ready(function() {
$("p:first").after("<h1>Решение:</h1>");
});
</script>
</head>
<body>
<h1>
Проблема</h1>
<p>
В США половина детей весит больше, чем все население Вьетнама</p>
<p>
Отправить американских детей во Вьетнам</p>
</body>
</html>


Спустя 24 секунды (5.04.2011 - 21:03) Игорь_Vasinsky написал(а):
да всем понятно что он имел ввиду.... и я теперь сижу и всё время оглядываюсь ohmy.gif

Спустя 14 минут, 43 секунды (5.04.2011 - 21:18) Invis1ble написал(а):
alex12060
Цитата
Тут регулярки не под силу.

Кто сказал?
$content = '<p>ololo</p><p>ololo2</p>';
$mod_content = preg_replace('#^(.*?<p>.*?</p>)(.*?)#sui', '$1что-то$2', $content);
echo $mod_content;

А подключать ради этого отдельную библиотеку - маразм )

Спустя 5 минут, 18 секунд (5.04.2011 - 21:23) Игорь_Vasinsky написал(а):
силён... я кте стучаться буду - когда пипрёт... не идут у мня регулярки ни в какую ни идут. Не уловил я суть паттернов.

Спустя 11 минут, 20 секунд (5.04.2011 - 21:35) eXaM написал(а):
Про библиотеку, кстати, правильно подметили — маразм. Есть же insertBefore, а значит и insertAfter, который реализуется вот такой простой строчкой:
parent.insertBefore(node, referenceNode.nextSibling);

Спустя 10 минут, 59 секунд (5.04.2011 - 21:46) alex12060 написал(а):
Я маразматик, да да.

Спустя 3 минуты, 22 секунды (5.04.2011 - 21:49) Invis1ble написал(а):
alex12060
Да ладно, я ж не со злости =)
просто все почему-то уже не представляют жизни без jQuery....

Спустя 5 минут, 57 секунд (5.04.2011 - 21:55) alex12060 написал(а):
Invis1ble

Она проста в использовании. ИМХО.
Конечно, ЖС не знать в чистом виде - зло, но с ЖК проще как-то жить. Многие кричат, мол, тяжелая и так далее, но если качать лайты - все хорошо.

А вообще, я веду свой проект с использованием ЖК, поэтому, чаще всего выставляю на ней свои примеры smile.gif

Спустя 6 минут, 18 секунд (5.04.2011 - 22:01) eXaM написал(а):
А мне кажется, что jQuery стоит использовать только в случае, если при необходимости сможешь сделать то же самое сам. Это ведь обычный JavaScript. Это ж не какая-нибудь GDLib, для написания альтернативы которой надо знать другой язык (C/C++).

Спустя 1 час, 12 минут, 42 секунды (5.04.2011 - 23:14) Crash2007 написал(а):
huh.gif (пока меня не было)))
спасибо кто помог))вот пожалуй пример Invis1ble мне подойдёт =) спасибо

Спустя 13 минут, 5 секунд (5.04.2011 - 23:27) Krevedko написал(а):
джиквери-рулез однозначно )

Спустя 8 минут, 58 секунд (5.04.2011 - 23:36) eXaM написал(а):
Джейкуайри smile.gif

Спустя 1 час, 3 минуты, 48 секунд (6.04.2011 - 00:40) Crash2007 написал(а):
ее.. :huh:
всётаки проблема в силе..оО
пример
$content = '<p>ololo</p><p>ololo2</p>';
$mod_content = preg_replace('#^(.*?<p>.*?</p>)(.*?)#sui', '$1что-то$2', $content);
echo $mod_content;

почему то не умеет работать с вместительным текстом..
а пример
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>
Гостевая книга 1.0</title>
<meta
http-equiv="content-type" content="text/html; charset=windows-1251" />
<script
type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script>

$(document).ready(function() {
$("p:first").after("<h1>Решение:</h1>");
});
</script>
</head>
<body>
<h1>
Проблема</h1>
<p>
В США половина детей весит больше, чем все население Вьетнама</p>
<p>
Отправить американских детей во Вьетнам</p>
</body>
</html>
тут я бы спросил..как вставить после первого абзаца в определённый div?

Спустя 2 часа, 54 минуты, 2 секунды (6.04.2011 - 03:34) Invis1ble написал(а):
Crash2007
Что значит "с вместительным текстом"? Покажи, как ты проверяешь

Спустя 52 минуты, 48 секунд (6.04.2011 - 04:27) inpost написал(а):
Crash2007
preg_replace('|</p>.*$|ius','</p>'.$замена,$text);

Спустя 6 часов, 50 минут, 49 секунд (6.04.2011 - 11:17) Crash2007 написал(а):
Invis1ble
$row['text'] = '<p>В среду вечером (21:00 по московскому времени) в зале Yerba Buena в Сан-Франциско компания Apple представляла новое поколение своего планшетного компьютера — iPad2, который поступит в продажу в США уже 11 марта. Самым обсуждаемым вопросом перед премьерой устройства (помимо, разумеется, рабочих характеристик) был: кто будет его представлять. Стив Джобс в конце января ушел в бессрочный медицинский отпуск; он, несмотря на заверения коллег, что непосредственным образом участвует в судьбе всех новых продуктов, мог и пропустить важное событие.</p>
<p>К радости поклонников и акционеров Apple, Джобс нашел в себе силы представить iPad2. «Мы долго работали над этой премьерой, — сказал он, — и я просто не хотел ее пропустить».

За неполный год, прошедший с выхода на рынок первого iPad, Apple удалось продать 15 млн планшетных устройств, заработав на этом $9,5 млрд. Кроме того, рассказал Джобс, компания уже продала свой стомиллионный iPhone, а число подписчиков iTunes Store перевалило за 200 млн. «Amazon не раскрывает числа своих пользователей», добавил он, но «вполне вероятно», что у Apple сейчас самая большая база кредитных карт в мире.

Джобс не упустил случая напомнить об успехах своей компании и поиздеваться над скептиками. «Когда мы представляли iPad, — напомнил он, — мы говорили, что это наша самая продвинутая технология в магическом и революционном устройстве. Люди смеялись над словом «магический», но кто оказался прав? Кому-то не нравилась цена — поговорите об этом с нашими конкурентами».</p>'
;
$content = $row['text'];
и ничего не выводится..=()

а пример inpost вообще некорректно работает.. =)

Спустя 41 минута, 43 секунды (6.04.2011 - 11:59) inpost написал(а):
$text = '<p>BLALAFWLAFAWF AWFWA Пей пиво, люди людей! L</p><p>А до этого места уже всё убрали!</p><p><strong>wdamdowadmowamdoa</strong></p>wdawdwamo<p>  TETA</p>dwadwadwa';
$lafa = 'МЫ СИЛА';
$patern = '|(<\/p>)(.*)$|ius';
$a = preg_replace($patern,'\\1<p style="color:red; font-size:22px;">'.$lafa.'</p>\\2',$text);

Спустя 1 час, 56 минут, 12 секунд (6.04.2011 - 13:55) Crash2007 написал(а):
inpost
var_dump($a); ===== NULL...? unsure.gif

Спустя 2 часа, 33 минуты, 43 секунды (6.04.2011 - 16:29) inpost написал(а):
Crash2007
Я проверил, у меня всё работает

Спустя 2 часа, 24 минуты, 31 секунда (6.04.2011 - 18:53) Crash2007 написал(а):
blink.gif а почему у меня не работает?.........))

Спустя 8 минут, 34 секунды (6.04.2011 - 19:02) Invis1ble написал(а):
Crash2007
Свернутый текст
$row['text'] = '<p>В среду вечером (21:00 по московскому времени) в зале Yerba Buena в Сан-Франциско компания Apple представляла новое поколение своего планшетного компьютера — iPad2, который поступит в продажу в США уже 11 марта. Самым обсуждаемым вопросом перед премьерой устройства (помимо, разумеется, рабочих характеристик) был: кто будет его представлять. Стив Джобс в конце января ушел в бессрочный медицинский отпуск; он, несмотря на заверения коллег, что непосредственным образом участвует в судьбе всех новых продуктов, мог и пропустить важное событие.</p>
<p>К радости поклонников и акционеров Apple, Джобс нашел в себе силы представить iPad2. «Мы долго работали над этой премьерой, — сказал он, — и я просто не хотел ее пропустить».

За неполный год, прошедший с выхода на рынок первого iPad, Apple удалось продать 15 млн планшетных устройств, заработав на этом $9,5 млрд. Кроме того, рассказал Джобс, компания уже продала свой стомиллионный iPhone, а число подписчиков iTunes Store перевалило за 200 млн. «Amazon не раскрывает числа своих пользователей», добавил он, но «вполне вероятно», что у Apple сейчас самая большая база кредитных карт в мире.

Джобс не упустил случая напомнить об успехах своей компании и поиздеваться над скептиками. «Когда мы представляли iPad, — напомнил он, — мы говорили, что это наша самая продвинутая технология в магическом и революционном устройстве. Люди смеялись над словом «магический», но кто оказался прав? Кому-то не нравилась цена — поговорите об этом с нашими конкурентами».</p>'
;
$content = $row['text'];
$mod_content = preg_replace('#^(.*?<p>.*?</p>)(.*?)#sui', '$1<h1>Все работает корректно</h1>$2', $content);
echo $mod_content;

Все нормально работает, специально щас проверил у себя. У тебя скрипт в какой кодировке? Регулярка под юникод написана, если у тебя не юникод, то убери модификатор u из паттерна.

Спустя 42 минуты, 25 секунд (6.04.2011 - 19:44) Crash2007 написал(а):
ах вот оно что....а я то)) биг спасибо!! =)

а как можно вместо "<h1>Все работает корректно</h1>" инклудить файл??

Спустя 6 минут, 42 секунды (6.04.2011 - 19:51) Invis1ble написал(а):
Можно например делать вывод в буффер, а затем подставлять содержимое буффера.
ob_start();
include $file;
$include_content = ob_get_contents();
ob_end_clean();
$content = $row['text'];
$mod_content = preg_replace('#^(.*?<p>.*?</p>)(.*?)#sui', '$1' . $include_content . '$2', $content);
echo $mod_content;

Спустя 4 минуты, 12 секунд (6.04.2011 - 19:55) Crash2007 написал(а):
ах) спасибо Invis1ble!! как под заказ)))) rolleyes.gif

Спустя 1 час, 13 минут, 11 секунд (6.04.2011 - 21:09) inpost написал(а):
Crash2007
Я вынужден жестого возмутиться.
Вот результат работы: http://inpost.dp.ua/16/test.php
Этого скрипта:
<?php                   
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
$text = '<p>Абзац первый</p><p>Абзац второй</p><p><strong>Абзац третий</strong></p>Между третьим и четвертым<p>Четвертый</p>После четвертого';
$lafa = 'ЭТО МЕГА ВСТАВКА';
$patern = '|(<\/p>)(.*)$|ius';
$a = preg_replace($patern,'\\1<p style="color:red; font-size:22px;">'.$lafa.'</p>\\2',$text);
echo $a;

Спустя 2 часа, 37 минут, 18 секунд (6.04.2011 - 23:46) Crash2007 написал(а):
inpost
У меня этот код работает только при стирании буквы "u" c паттерна)

Спустя 1 час, 7 минут, 33 секунды (7.04.2011 - 00:53) inpost написал(а):
Crash2007
у тебя не ЮТФ? smile.gif

Спустя 10 часов, 30 минут, 12 секунд (7.04.2011 - 11:24) Crash2007 написал(а):
ну видимо так...сори..а как проверить?? =)

Спустя 4 часа, 51 минута (7.04.2011 - 16:15) inpost написал(а):
В начале скрипта указывается кодировка через PHP:
header("Content-Type: text/html; charset=utf-8");

, а так же в HTML, между <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>

В .htaccess: AddDefaultCharset UTF-8

Charset - кодировка, в которой записан сайт.


_____________
Рисую на PHP :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.