Oznámení
jde při oneline vygenerovat „nadpis-clanku“?
před 12 lety
- krteczek
- Člen | 13
Zdar, napadla mne taková věc, nadpisy článků vždycky zapisuji zvlášť, a napadlo mne že když texy umí při zpracování nejvyžší nadpis zároveň převést na text bezdiakritiky s mezerami nahrazenými pomlčkami, jestli toto nejde i při oneline:
<?php
$nadpis = "nějaký nadpis z inputu";
$texy = new Texy();
$seonadpis = $texy->seoHeadings($nadpis);
echo $seonadpis; //nejaky-nadpis-z-inputu
Asi je to blbost, ale myslím si, že by to taky spoustě lidí vytrhlo trn z paty, a zjednodušilo spoustu administračních rozhraní ve smyslu: „je tam texy tak nepotřebuji vymýšlet něco dalšího“
krteczek
před 12 lety
- David Grudl
- Nette Core | 6806
Jde to.
$nadpis = "nějaký nadpis z inputu"; // POZOR - musí být v UTF-8
echo Texy::webalize($nadpis);
→ nejaky-nadpis-z-inputu
Výsledek obsahuje pouze znaky a-z, čísla a spojovník.
Je však možné povolit i další ASCII znaky:
$nadpis = "článek/PHP 5.2.1 a funkce is_array()";
echo Texy::webalize($nadpis); // standardní chování
→ clanek-php-5-2-1-a-funkce-is-array
echo Texy::webalize($nadpis, '/_.'); // navíc povolíme znaky: / _ .
→ clanek/php-5.2.1-a-funkce-is_array
Ještě dodám, že funkce funguje korektně i při chybné implementaci iconv (glibc).
před 12 lety
- krteczek
- Člen | 13
Toto je super, ještě jeden dotaz, když texy převádí text do utf (když v něm není) a nastavíme
$texy->encoding = 'iso-8859-2';
provede texy překodování do utf, zpracuje text a převede ho zase zpět na původní kódování (pokud se nemýlím)
bude splněna podmínka musí být v UTF-8 nebo ne? a pokud ne existuje zpusob jak to vnutit texy tak aby text překodoval do utf a potom teprve prohnal webalize?
díky krteczek
před 12 lety
- David Grudl
- Nette Core | 6806
nechápu…
před 12 lety
- krteczek
- Člen | 13
Používám texy pro php4
Hledám řešení které musí fungovat na php4 i php5:
- zpracovávaný text v je jiném kódování než utf-8, například iso-8859–2
- umí texy toto kódóvání (iso-8859–2) při použití:
Texy::webalize($nadpis);
převézt na utf-8 před zpracováním, nebo musím použít nejprve samostatně funkci iconv? - pokud musím před použitím webalize(), převézt text do utf-8, lze použít TexyUtf? Jak?
před 12 lety
- David Grudl
- Nette Core | 6806
Texy::webalize($nadpis) očekává vstup v UTF-8, to jsem psal už výše.
Převody mezi kódováním se v Texy realizují funkcí iconv (tu volají i metody třídy TexyUtf). Ale pozor, ta nemusí být na každém PHP 4 hostingu povolena. Teoreticky se lze jednomu volání iconv vyhnout, protože fce Texy::webalize() pomocí ní převádí text z UTF-8 do WINDOWS-1250. Pokud máš text v ISO-8859–2, můžeš si přepsat webalize() tak, aby převáděla pomocí strtr().