2010-11-25 2 views
0

У меня есть следующая ситуация: у меня есть html-файл с тегами изображения около 10 или более, но он меняется. Теперь то, что я хочу добиться того, чтобы заменить СРК изображения с помощью функции PHP как в примере нижеЗамена изображения в изображении src tag

Я хочу, чтобы заменить что-то вроде этого

<img src="image1.png" .... 
<img src="image2.png" .... 

с этим

<img src="<?=imageResize('image1.png',20,15)?>" ... 
<img src="<?=imageResize('image2.png',20,15)?>" ..`. 

Возможно ли это?

+0

будет ли тэг img всегда записываться ` Gordon 2010-11-25 15:56:31

ответ

3

Предположим, что текущий исходный код страницы содержится в $source. Попробуйте несколько регулярных выражений:

<?php 
preg_replace ('/<img src="(.+)"/Ui', '<img src="<?=imageResize(\'\\1\',20,15)?>"', $source); 
?> 
0

Я вижу 2 случая:

  • Ваша функция imageResize изменяет размер изображения, создавая новый с другим именем (что-то вроде image120x15.png) и возвращает строку с именем изображения. В этом случае вы должны сделать что-то вроде:
<img src="<?php echo imageResize('image1.png',20,15);?>" ... 
  • Ваш imageResize фактически изменяет исходное изображение и опрокинув его. В этом случае, сделать что-то вроде:
<?php imageResize('image1.png',20,15);?> 
<img src="image1.png" ... 
0

Захват вывода с выходным буфером, а затем применить регулярное выражение для замены.

<?ob_strart();?> 
<img src="image1.png" /> 
<img src="image2.png" /> 

<?php 
$cnt = ob_get_clean(); 
$cnt = preg_replace ('/<img src="([^"]+)"/', '<img src="<?=imageResize(\'\\1\',20,15)?>"', $cnt);?> 

Для выполнения функции imageresize вы должны запускать выходные данные в eval().