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
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
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
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
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
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
Kcko:
Jedině růčo no...
Str4wberry
Profil
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
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í.
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0