Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2012, 23:44   #1
livesport
 
Регистрация: 03.04.2012
Сообщений: 9
По умолчанию Замена строк по рег выражению

Есть массив $array:
PHP код:
Array
(
    [
0] => <tr><td id="sep"></td></tr>
    [
1] => <tr><td id="title">texttext</td></tr>
    [
2] => <tr><td id="match" >texttext</td><td id="data">texttext</td></tr>
    [
3] => <tr id="lsone"><td id="time">texttext</td><td id="hteam">texttext</td><td id="result">texttext</td><td id="aTeam">texttext</td></tr>
    [
4] => <tr id="lstwo"><td id="time">texttext</td><td id="hteam">texttext</td><td id="result">texttext</td><td id="aTeam">texttext</td></tr>
    [
5] => <tr id="lsone"><td id="time">texttext</td><td id="hteam">texttext</td><td id="result">texttext</td><td id="aTeam">texttext</td></tr>
    [
6] => <tr><td id="sep"></td></tr>

все что между тегом
Код HTML:
<td id="result">texttext</td>
Нужно заменить на значения массива $myarray :
PHP код:
Array
(
            [
0] => <a href="blabla.php">texttext</a>
            [
1] => <a href="blabla.php">texttext</a>
            [
2] => <a href="blabla.php">texttext</a>

Должно получится так :
PHP код:
Array
(
    [
0] => <tr><td id="sep"></td></tr>
    [
1] => <tr><td id="title">texttext</td></tr>
    [
2] => <tr><td id="match" >texttext</td><td id="data">texttext</td></tr>
    [
3] => <tr id="lsone"><td id="time">texttext</td><td id="hteam">texttext</td><td id="result"><a href="blabla.php">texttext</a></td><td id="aTeam">texttext</td></tr>
    [
4] => <tr id="lstwo"><td id="time">texttext</td><td id="hteam">texttext</td><td id="result"><a href="blabla.php">texttext</a></td><td id="aTeam">texttext</td></tr>
    [
5] => <tr id="lsone"><td id="time">texttext</td><td id="hteam">texttext</td><td id="result"><a href="blabla.php">texttext</a></td><td id="aTeam">texttext</td></tr>
    [
6] => <tr><td id="sep"></td></tr>

между тегом
Код:
<td id="result">texttext</td>
только цифры и знаки "?","-" . И между другими тегами где "texttext" тоже нету тегов, только текст.
И размер $myarray всегда равен количеству тегов с id='result'.

Последний раз редактировалось livesport; 30.11.2012 в 04:37.
livesport вне форума Ответить с цитированием
Старый 30.11.2012, 17:54   #2
livesport
 
Регистрация: 03.04.2012
Сообщений: 9
По умолчанию

PHP код:
foreach( $array as & $item )
    {
 
$pattern '#^(.+?)<td\s+id\s*=\s*('|"|)result\2\s*>(.*?)<\s*/\s*td>(.+?)$#is';
        
        if( preg_match( 
$pattern$item ) )
           
           
$item = preg_replace( $pattern,'$1'.'<td id="result">'.array_shift($myarray).'</td>'.'$3', $item );
    } 
Все сделано !
livesport вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена строк местами U4-nik Общие вопросы Delphi 2 30.05.2011 10:42
Массовая замена строк. MrAnymage Microsoft Office Access 3 08.02.2011 20:59
Замена строк в файлах kniazkinP Общие вопросы Delphi 0 27.10.2010 09:27
замена строк матрицы Rom@shka Общие вопросы C/C++ 1 16.01.2009 15:47