[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: циклы for...подстажите что неправильно...
Crash2007
скажите пожалуйста что здесь не правильно......

$exp = explode(' ', $str);
for($j = 0; $j <= count($img); $j++) {
for($i = 0; $i <= count($exp); $i++) {
if(stristr($exp[$i], 'href=""')) {
$exp[$i] = str_replace('href=""', 'href="'.$img[$j].'"', $exp[$i]);
}
}
}

//print_r($img);
echo implode(' ', $exp);

в массиве $img хранится:
Array ( [0] => http://test3/gplk11.jpg [1] => http://test3/gplk22.jpg [2] => http://test3/gplk33.jpg )
$exp1 - это текст(с тэгами)



Спустя 4 минуты, 51 секунда (7.10.2010 - 18:31) arvitaly написал(а):
Цитата
скажите пожалуйста что здесь не правильно......


Почему вы думаете что что то неправильнО?

Спустя 29 минут, 32 секунды (7.10.2010 - 19:01) Michael написал(а):
$i = 0; $i < count($exp)
- границы циклов

Спустя 37 минут, 7 секунд (7.10.2010 - 19:38) Crash2007 написал(а):
та границы правильно выставлены..!
кстати везде где находит " href="" " заменяется на первое значение массива $img..
а походу дела оно должно заменять значение $j - го индекса......вот и спрашиваю...может что-то не правильно сделал...? rolleyes.gif

Спустя 2 часа, 23 минуты, 30 секунд (7.10.2010 - 22:01) arvitaly написал(а):
Цитата
кстати везде где находит " href="" " заменяется на первое значение массива $img..


На последний навен

И что именно в $str, пока не понятно


$exp = explode( ' ', $str ) ;
for ( $i = 0; $i <= count( $exp ); $i++ )
{
if ( stristr( $exp[$i], 'href=""' ) )
{
$exp[$i] = str_replace( 'href=""', 'href="' . $img[$i] . '"', $exp[$i] ) ;
}
}


//print_r($img);
echo implode( ' ', $exp ) ;


Может так нужно?

Спустя 48 минут, 30 секунд (7.10.2010 - 22:50) Crash2007 написал(а):
ну, вот $str :
<p>study ua</p>
<p><a
href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>
xcvsіі</p>
<p><a
href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" alt="" /></a></p>

вот $img :
Array ( [0] => /files/editor/24.jpg [1] => /files/editor/52.jpg ) 

arvitaly нээ, так не пойдёт..потому что у $exp и $img разные массивы!
как быть??... sad.gif

Спустя 3 минуты, 14 секунд (7.10.2010 - 22:53) arvitaly написал(а):
И еще напишите что вы хотите увидеть в результате.

Или просто в хреф должно вставить то что в src, а массив $img не причем?

Спустя 1 минута, 56 секунд (7.10.2010 - 22:55) Crash2007 написал(а):
именно так, "в хреф должно вставить то что в src", а в $img уже сохранено то, что должно вставится в хреф...

Спустя 5 минут, 40 секунд (7.10.2010 - 23:00) arvitaly написал(а):
<?php
$str='
<p>study ua</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" alt="" /></a></p>
'
;
echo preg_replace('~<p><a(.*)href=""(.*)><img(.*)src="(.*)"(.*)/></a></p>~Usi','<p><a$1href="$4"$2><img$3src="$4"$5/></a></p>', $str);
?>


Так?

Спустя 5 минут, 46 секунд (7.10.2010 - 23:06) arvitaly написал(а):
<?php

$img = array( '111', '222' ) ;
$str = '
<p>study ua</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" alt="" /></a></p>
'
;
echo preg_replace_callback( '~<p><a(.*)href=""(.*)><img(.*)src="(.*)"(.*)/></a></p>~Usi', 'p', $str ) ;

function p( $m )
{
global $img ;
static $i = 0 ;

return '<p><a' . $m[1] . 'href="' . $img[$i++] . '"' . $m[2] . '><img' . $m[3] . 'src="' . $m[4] . '"' . $m[5] .
'/></a></p>' ;
}

?>


Или можно произвольными данными из массива по порядку заменить так

Спустя 2 минуты, 49 секунд (7.10.2010 - 23:09) Crash2007 написал(а):
ОМГ!!! я два дня мучаюсь а тут на те... wink.gif
огромное спасибо!!!... cool.gif
(с регулярками у меня пока туго..только учу это..)

Спустя 6 минут, 40 секунд (7.10.2010 - 23:16) arvitaly написал(а):
Цитата
ОМГ!!! я два дня мучаюсь а тут на те... 
огромное спасибо!!!... 
(с регулярками у меня пока туго..только учу это..)


Лучше сам разбирайся хоть месяц, форум он до поры до времени...

Спустя 33 минуты, 13 секунд (7.10.2010 - 23:49) Crash2007 написал(а):
эмм..arvitaly..помоги ещё одним..:
если ( в тэге img существует атрибут id)  {
true;
}

Спустя 2 минуты, 16 секунд (7.10.2010 - 23:51) arvitaly написал(а):
Цитата
эмм..arvitaly..помоги ещё одним..:


ну а как же учится(

if (preg_match('~<img.*id\s*=\s*".*".*>~Usi',$str)

Спустя 7 минут, 34 секунды (7.10.2010 - 23:59) Crash2007 написал(а):
оО..ещё спасибо!!=))
эмм..меня эта штука уже так запарила...что хочу уже поскорее доделать....))
а как это совместить?
if(preg_match('~<img.*id\s*=\s*".*".*>~Usi', $imp)) {
echo preg_replace('~<a(.*)href=""(.*)><img(.*)src="(.*)"(.*)/></a>~Usi','<a$1href="$4"$2><img$3src="$4"$5/></a>', $imp);
}

если ( в тэге img существует атрибут id)  {
вставляем в хреф, то что в срк;
} если (нет) {
то не вставляем =)
}

Спустя 5 минут, 54 секунды (8.10.2010 - 00:05) arvitaly написал(а):
Цитата
если ( в тэге img существует атрибут id)

вставляем в хреф, то что в срк;


А вон чо надо, вопрос такой, а id где находится: до src или после

Спустя 2 минуты, 38 секунд (8.10.2010 - 00:07) Crash2007 написал(а):
ну од вижу что fckeditor сохраняет после src =)

Спустя 9 минут, 3 секунды (8.10.2010 - 00:16) arvitaly написал(а):
<?php

$str = '
<p>study ua</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" id="i1" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/53.jpg" id="i2" alt="" /></a></p>
'
;
echo preg_replace( '~<a([^<>]*)href=""([^<>]*)><img([^<>]*)src="([^"]+)"([^<>]*id="[^"]*"[^<>]*)/></a>~Usi',
'<a$1href="$4"$2><img$3src="$4"$5/></a>', $str ) ;

Спустя 5 минут, 47 секунд (8.10.2010 - 00:22) Crash2007 написал(а):
блиинн...вот дурень!!сори....наоборот....если есть ИД то ничего не менять......(а если есть, менять)....извини.... unsure.gif

Спустя 5 минут, 45 секунд (8.10.2010 - 00:28) arvitaly написал(а):
<?php

$str = '
<p>study ua</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" id="i1" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/53.jpg" id="i2" alt="" /></a></p>
'
;


echo preg_replace( '~<a([^<>]*)href=""([^<>]*)><img([^<>]*)src="([^"]+)"(?:(?!\sid="|<|>).)*/></a>~Usi',
'<a$1href="$4"$2><img$3src="$4"$5/></a>', $str ) ;

Спустя 7 минут, 16 секунд (8.10.2010 - 00:35) Crash2007 написал(а):
хух..большой тебе сэнкс, очень помог!!!=))) rolleyes.gif

теперь будем учить!! =)

Спустя 22 минуты, 7 секунд (8.10.2010 - 00:57) Crash2007 написал(а):
кстати только что понял что этот fckeditor сохраняет id 1раз перед src и 1раз после src..то есть чередуются..(меняется с alt)..... mad.gif
я немного в шокэ....у тебя есть какието идеи?? unsure.gif

Спустя 2 минуты, 45 секунд (8.10.2010 - 01:00) arvitaly написал(а):
<?php

$str = '
<p>study ua</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" id="i1" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" id="i2" width="200" src="/files/editor/53.jpg" alt="" /></a></p>
'
;


echo preg_replace( '~<a([^<>]*)href=""([^<>]*)><img((?!\sid="|<|>).)*src="([^"]+)"((?!\sid="|<|>).)*/></a>~Usi',
'<a$1href="$4"$2><img$3src="$4"$5/></a>', $str ) ;


Вроде кто-то обещал учить)

Спустя 13 минут, 26 секунд (8.10.2010 - 01:13) Crash2007 написал(а):
да. но ты не учёл что кроме id могут быть ещё атрибуты... sad.gif

Спустя 18 минут, 6 секунд (8.10.2010 - 01:32) arvitaly написал(а):
Цитата
да. но ты не учёл что кроме id могут быть ещё атрибуты..


<?php

$str = '
<p>study ua</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/24.jpg" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" width="200" src="/files/editor/52.jpg" id="i1" alt="" /></a></p>
<p>xcvsіі</p>
<p><a href="" class="highslide" onclick="return hs.expand(this, config1 )"><img height="125" id="i2" width="200" src="/files/editor/53.jpg" alt="" /></a></p>
'
;


echo preg_replace( '~<a([^<>]*)href=""([^<>]*)><img((?:(?!\sid="|<|>).)*)src="([^"]+)"((?:(?!\sid="|<|>).)*)/></a>~Usi',
'<a$1href="$4"$2><img$3src="$4"$5/></a>', $str ) ;

Спустя 3 минуты, 57 секунд (8.10.2010 - 01:35) Crash2007 написал(а):
" sad.gif " -- biggrin.gif
оО..норм!! rolleyes.gif думаю проблем больше не возникнет cool.gif
в который раз...спасибо!! laugh.gif


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

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