Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Найти и заменить нужный символ
 
 автор: _Geroi_   (06.01.2012 в 21:35)   письмо автору
 
 

Здравствуйте! Хочу опять попросить о помощи. Надеюсь, что кто-нибудь мне поможет. Или хотя бы подскажут, в каком направлении мне дальше двигаться :)

$markers="markers.push([-0.059738148356404154,0.10200977325439453,'Колезей',2]);
markers.push([-0.059738148356404154,0.10200977325439453,'Церковь',3]);
markers.push([-0.059738148356404154,0.10200977325439453,'Я тут живу',1]);
markers.push([-0.059738148356404154,0.10200977325439453,'<div align="center">Гипермаркет мебели ! <br></div>Отличная мебель по отличной цене. 'Праздничные 20% скидки' до конца месяца!',2]);";

Здесь надо одинарные кавычки, "отмеченные жирным шрифтом" заменить на двойные кавычки.
По началу хотел помощью
$znak=str_replace(chr(39),chr(34),$markers);
но так не получается так как в начале и в конце изменять нельзя.

Из элементов, которые на протяжении всей работы имеют одну и ту же длину это: "markers.push([" и " ',2]);"
Остальные изменяются.

Как мне решить эту головоломку или с чего начать? :)

  Ответить  
 
 автор: .....   (07.01.2012 в 04:52)
 
   для: _Geroi_   (06.01.2012 в 21:35)
 

типа preg_replace_callback() чего-нибудь можно применить
<?php
header
('content-type: text/plain');  

$txt =<<<TXT
markers.push([-0.059738148356404154,0.10200977325439453,'Церковь',3]);
markers.push([-0.059738148356404154,0.10200977325439453,'<div align="center"> 'Праздничные 20%' !',2]);
TXT;
function 
match_handler$m ){
    return 
'markers.push(['$m[1] .','$m[2] .',\''str_replace("'",'"'$m[3]) .'\','$m[4] .');';
}
   echo 
$strpreg_replace_callback('#markers\.push\(\[([-\.0-9]*),([-\.0-9]*),\'(.*?)\',(\d+)\]\)\s*;#s''match_handler'$txt); 
?>

  Ответить  
 
 автор: _Geroi_   (07.01.2012 в 11:45)   письмо автору
 
   для: .....   (07.01.2012 в 04:52)
 

Спасибо большее за готовое решение!!! :)

У Вас опечатка забыли скобку поставить "]" в строчке $m[4] .');';
правильнее будет $m[4] .']);';

Но все равно спасибо! :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования