Jump to content
  • 0

Можно ли поменять местами 2 параграфа?


nikki4
 Share

Question

есть:

<p><img путь и параметры картинки />текст</p>

надо:

<p>текст</p><img путь и параметры картинки />

как такое сделать регулярками не понимаю, если вообще возможно.

 

зато знаю как сделать так:

<img путь и параметры картинки /><p>текст</p>

но так получается что картинка над текстом.. может можно как-то при помощи CSS сделать визуально, чтобы фото было под текстом?

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Может быть достаточно дать картинке нужный float чтобы текст оказался справа или слева

так надо, чтобы текст был сверху.

 

Раньше я писал как <p><img>text</p> чтобы картинка была слева.

Но сейчас стали люди с мобильников больше смотреть, да и вообще так подумал, большая картинка нагляднее чем маленькие фото слева и текст не едет никуда.

и решил что будет лучше картинку поместить под текстом. в ручную это займет достаточно много времени... вот ищу способ какой-нибудь\

т.е. картинка width:100%

Edited by nikki4
Link to comment
Share on other sites

  • 0

Какая-то странная у вас проблема... Мне например абсолютно непонятно в чем сложность разместить текст над картинкой и уж тем более при чем тут регулярки.

<div><p>Some text</p></div><img .../>

Вот так вот например картинка будет под текстом.

 

UPD: И без дива будет в большинстве случаев.

UPD2: Если у вас нет доступа к html то где вы пишете эти самые регулярки?

Edited by infidel
Link to comment
Share on other sites

  • 0

Сложность в том, что таких картинок тысячи и руками займет несколько часов.

вот ищу какую-то регулярку, или может в  css есть свойство позволяющее поменять местами

Edited by nikki4
Link to comment
Share on other sites

  • 0

Как то так?

$string = "<p><img путь и параметры картинки />текст</p>";preg_match('#<img.*/>#', $string, $res);$img = $res[0];$string = str_replace($img, '', $string);$result = $string.$img;echo htmlspecialchars($result);

UPD: Или во так

$string = "<p><img путь и параметры картинки />текст</p>";$result = preg_replace('#(<p>.*)(<img.*/>)(.*</p>)#', '$1$3$2', $string);echo htmlspecialchars($result);
Edited by infidel
  • Like 1
Link to comment
Share on other sites

  • 0

Спасибо! Работает,

вот только теперь уже второй час пытаюсь выполнить это к базе (проще видимо было все же руками за 2-3 часа это сделать...)

 

в общем следующий код не вносит никаких изменений

<?php$file='bdname.mysql.sql';$string=file_get_contents($file);$result = preg_replace('#(<p>.*)(<img.*/>)(.*</p>)#', '$1$3$2', $string);echo htmlspecialchars($result);?>

Попробовал взять кусок кода, но тогда вообще не работает, то на запятые ругается, то еще что-то (много спец символов)

 

Провел еще один тест:

скопировал кусок кода

<p><img параметры картинки /></p>\r\n<p>текст1.</p>\r\n','\r\n<p> </p>\r\n<p> </p>\r\n<h2>подзаголовок</h2>\r\n<p>текст2.</p>\r\n<p>

в нотпаде и дримвивере поиск  по #(<p>.*)(<img.*/>)(.*</p>)# - ничего не находит

а так - (<p>.*)(<img.*/>)(.*</p>) находит все кроме последних \r\n<p>

 

Может в этом дело..

Edited by nikki4
Link to comment
Share on other sites

  • 0
Попробовал взять кусок кода, но тогда вообще не работает, то на запятые ругается, то еще что-то (много спец символов)

 

Я вам дал регулярку разбора конкретной указанной конструкции, а не регулярку на все случаи жизни) Предполагалось что на вход будет подаваться выражение типа <p><img параметры картинки />текст</p>

 

Сколько весит файл дампа?

 

Вот так должно работать с дампом поидее (<p>.*?)(<img.*?/>)(.*?</p>)

Edited by infidel
Link to comment
Share on other sites

  • 0

Ворчить HTML регулярками — плохая идея. Ну а что касается регулярок, то не завбывайте про модификаторы. Наверное, пригодится многострочность и жадность.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy