Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярки и массив 
V
    Опции темы
klyxa
Дата 16.1.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



у меня вот есть код
Код

<?php
$filename= "lala.txt";
$f= fopen($filename,"a+");
$fr = fread($f,filesize($filename));
echo $fr."<br>";
$arr = array("clear","PREVED_1","PREVED_2","PREVED_N");
if($out = preg_replace("/<<z([0-9]*)>>/",XXX,$fr))
{
    echo $out;
}
?>


мне вот нужно все,вида <<z1>>, заменить на какоето значение..регулярка впринципе пашет,но.. функц. preg_replace возвращает во второй параметр, то что в круглых скобках в первом,в данном случае это будет число, в переменной $1(все на данном примере только). я хочу на месте XXX сделать $arr[$1]. т.е. $1 выступает в кач-ве индекса массива..я вот не знаю как это реализовать,подскажите плиз.код кривоя,но это не важно=)

PM MAIL   Вверх
Golda
Дата 16.1.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Вам нужен preg_replace_callback

Код

function rep($matches) {
    $arr = array('one', 'two', 'three');
    return $arr[$matches[1]];
}

$out = preg_replace_callback("/<<z([0-9]*)>>/",  'rep', $fr);



--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
sTa1kEr
Дата 17.1.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Можно так же использовать модификатор "e". Т.е. строки 7-10 будут.
Код

if($out = preg_replace("/<<z([0-9]*)>>/e", '$arr[\'$1\']', $fr))
{
    echo $out;
}



Golda, я вас тоже приветствую smile
PM MAIL   Вверх
klyxa
Дата 17.1.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



оо. спасиба камрады.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0797 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.