Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
Pomocí PHP editoru (je asi jedno jaký to je, ale konkrétně PHPED) nahrazuji tagy za jiné tagy
např odstavce za číslované seznamy. Tj. 2x => ( <p> => <li> a </p> => </li> )
Zjednoduššil jsem to regulárem <p>(.+?)</p> => <li>\1</li> , ale pořád je to takové kostrbaté. Lze udělat nějaké vícehromadné nahrazení něco ve smyslu?
<p>|</p>|<b>| => <li>|</li>|<strong .... |
||
Fisak Profil |
#2 · Zasláno: 26. 1. 2012, 21:04:35
Nevím jestli sem to dobře pochopil ale u většiny editorů stačí zapnout vyhledávání(ctrl+F) a tam máš nahradit... nevím jestli je to v phped ale např. v dreamweavru to je :-) doufám že sem pomohl..
|
||
Kcko Profil |
#3 · Zasláno: 26. 1. 2012, 21:07:22
Fisak:
Nepochopil, ale nic se neděje. |
||
Str4wberry Profil |
Já to pochopil spíš tak, aby se více druhů nahrazení provedlo „v jednom kroku“. Aby se nemuselo při úpravách každého souboru provést nejdřív nahrazení odstavců za seznamy, potom
<b> za <strong> atd. Je to tak?
|
||
Kcko Profil |
#5 · Zasláno: 26. 1. 2012, 21:25:03
Str4wberry:
Přesně. I když chci nahradit odstavce za seznamy tak to dělám na 2x (začáteční a koncový tag). Nebo Tím jedním regulárem, ale nelíbí se mi to. |
||
tatyalien Profil |
V editorech jsem to nenašel, ale nebrání ti nic si napsat na to skript. Kde si načteš php soubor, a projedeš a nahradíš co chceš...
Já to řešil v programu, kde jsem měl na pevno str_replace (pro odstranění znaků, co mě ničili exportační data), ale když se našel novej "znak", tak jsem musel furt dodávat nové a nové (to mě nebavilo). Tak jsem si udělal jednoduchý xml soubor (s hodnotama vstup, vystup), který jsem si načetl, a u hodnot co jsem chtěl "opravit", jsem je projel ve forach všechny náhrady. |
||
Kcko Profil |
#7 · Zasláno: 27. 1. 2012, 16:22:59
tatyalien:
Skript si samozřejmě umím napsat. Zajímala mne pouze informace, zda-li to nějaký editor umí, případně jak. Každopadáně díky. |
||
tatyalien Profil |
Kcko:
Ok, já prošel několik programů, netbeans, phpedit, atd.., ale spíš jedu v phpDesgingeru, všude je jen najít a nahradit, ale dle reg. výrazu ne. |
||
Kcko Profil |
#9 · Zasláno: 27. 1. 2012, 17:16:15
tatyalien:
I v PHPdesigneru to je (mám jak PHPEd tak PHPdesigner), ale to co jsem chtěl není vyložene regulární výraz. Ten už jsem popsal v [#1] Je to spíše něco jako str_replace(array('<p>', '</p>', '<hr />'), array('<li>', '</li>', '<div class="cara"></div>')); (editor => <p>|</p>|<b>| => <li>|</li>|<strong .... )
Asi to nejde no :] |
||
tatyalien Profil |
#10 · Zasláno: 28. 1. 2012, 08:03:42
Kcko:
Jedině růčo no... |
||
Str4wberry Profil |
#11 · Zasláno: 28. 1. 2012, 15:29:35
Sublime Text editoru je na něco takového plugin, ale myslím, že napsání si skriptu v PHP bude asi pro většinu lidí jednodušší.
|
||
Chamurappi Profil |
#12 · Zasláno: 28. 1. 2012, 16:53:24
Reaguji na Kcka:
S regulárními výrazy byt to mělo jít udělat dvěma nahrazeními pro libovolný počet nahrazovaných částí. Jsou-li zdrojové řetězce A , B a C a cílové X , Y a Z , tak:
1) Nahradit /A|B|C/g za $0XYZ .
2) Nahradit /A(X)YZ|BX(Y)Z|CXY(Z)/g za $1$2$3 .
Samozřejmě, že je tam určité riziko kolizí, které se dá snížit tím, že se třeba to přidávané XYZ něčím obalí. Asi to není moc praktický postup, ale pokud používáš stále stejnou sadu nahrazovaných věcí, nemusel by být tak otravný. Případně by šel napsat skript, který ty vstupy pro nahrazovací funkci sestaví.
|
||
Časová prodleva: 9 dní
|
|||
Kcko Profil |
Chamurappi:
Někdy to vyzkouším. Ale primárně jsem řešil to co jsem popsal výše a myslel jsem si, že to jde, ale jen já to neumím nebo nejsem schopen v editoru objevit. Testováno: (První způsob v mém editoru rozhodně nefunguje) a druhý je už zbytečně složitý, to bude snažší dvojí volání (viz první příspěvek). Každopádně díky. |
||
Časová prodleva: 11 let
|
0