powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Найти и заменить данные в строке.
6 сообщений из 6, страница 1 из 1
[PHP] Найти и заменить данные в строке.
    #38891324
DeLemur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть php скрипт, который принимает данные типа:
Код: php
1.
2.
3.
$str = "
<img id='photo-079.jpg' src='data:image/jpeg;base64,AAQSkZJRgABAgAAZAARRHVja3kAAQA'>
<img id='photo-214.jpg' src='data:image/jpeg;base64,BQWSkZFDSEWTEWRAZABkAAGTYERT'>";



Как можно вытащить название фото из id и вставить его в src? То есть сделать вот так:
Код: php
1.
2.
3.
$str = "
<img id='photo-079.jpg' src='photo-079.jpg'>
<img id='photo-214.jpg' src='photo-214.jpg'>";




p.s Эти данные я получаю из JS, есть что-то типа онлайн редактора, который встраивает картинки прям в страницу. Затем эти данные я отсылаю серверу и вот на сервере, уже думаю заменять base64 код картинки на обычный путь до файла и тд.
...
Рейтинг: 0 / 0
[PHP] Найти и заменить данные в строке.
    #38891334
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeLemur,
Код: php
1.
2.
3.
4.
5.
$str = preg_replace(
	'/id=(\S++)\s++src=[^>]++/', 
	'id=$1 src=$1', 
	$str
	);
...
Рейтинг: 0 / 0
[PHP] Найти и заменить данные в строке.
    #38891350
DeLemur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаDeLemur,
Код: php
1.
2.
3.
4.
5.
$str = preg_replace(
	'/id=(\S++)\s++src=[^>]++/', 
	'id=$1 src=$1', 
	$str
	);



Спасибо!

То что надо!
...
Рейтинг: 0 / 0
[PHP] Найти и заменить данные в строке.
    #38892832
DeLemur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаDeLemur,
Код: php
1.
2.
3.
4.
5.
$str = preg_replace(
	'/id=(\S++)\s++src=[^>]++/', 
	'id=$1 src=$1', 
	$str
	);




Хотя сейчас вот заметил, что этот код, удаляет кажется и все другие атрибуты в данном теге?!

У картинок у меня идёт и width и height если не применять данный скрипт то данные примерно такие:

Код: html
1.
<img id='photo-079.jpg' src='photo-079.jpg'  height="195" width="293" title="forest">



а после этого скрипта, всё удаляется, кроме id и src:

Код: html
1.
<img id='photo-079.jpg' src='photo-079.jpg'>
...
Рейтинг: 0 / 0
[PHP] Найти и заменить данные в строке.
    #38893012
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeLemur,

Зачем все это, $#$#%%#$#%%# ????????? facepalm.jpg

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?php
$html = "
<html>
	<img id='5438.jpg' src='data:image/jpeg;base64,/9j4AAQSkZJRgABAgAAZABkAAD7A' height=\"195\" width=\"293\" title=\"forest\">
	<img id='9077.jpg' src='data:image/jpeg;base64,/876AAQShgk897gAAZABkADB'> height=\"195\" width=\"293\" title=\"meadow\"
</html>";

$domDoc = new DOMDocument();
$domDoc->loadHtml( $html );

$xPath = new DOMXPath( $domDoc );
$imgs = $xPath->query( '//img' );

foreach ( $imgs as $image ) {
    $image->setAttribute( 'src', $image->getAttribute( 'id' ) );
}

printf ( "<code>%s</code>", htmlspecialchars( $domDoc->saveHtml() ) );
...
Рейтинг: 0 / 0
[PHP] Найти и заменить данные в строке.
    #38893020
DeLemur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikkiMouse,

Я уже решил этот вопрос, правда не в php, а в JS. Но меня это в принципе устраивает, так как я всё равно должен из JS отправлять данные на сервер и тд. Так по сути будет даже проще, сперва преобразовать данные, потом уже отсылать.

Вот эта регулярка, оставляет все атрибуты на месте, только меняет src на значение из id.

JS CODE:
Код: javascript
1.
2.
3.
var str = "<img id='photo-079.jpg' src='data:image/jpeg;base64,AAQSkZJRgABAgAAZAARRHVja3kAAQA' width='126' height='80'>";
var re = /id=(\S+)\s+src=(\S+)+/g;
var newstr = str.replace(re, "id=$1 src=$1");



На выходе будет:
Код: html
1.
<img id='photo-079.jpg' src='photo-079.jpg' width="126" height="80">
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Найти и заменить данные в строке.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]