Autor Zpráva
nethor
Profil
Zdravím,
v CMS používám fci, která nahrazuje za předložkami běžnou mezeru tvrdou mezerou:
function Predlozky($text,$DelkaPredlozek=1){
    $p[] = "~(\s[\w|ě|š|č|ř|ž|ý|á|í|é|ď|ť|ň|ú|ů]{1,$DelkaPredlozek})\s+~is";
    $r[] = '$1 ';
    $text = preg_replace($p, $r, $text);
    return    $text    ;
} 
Prakticky nahrazuje i spojky, zkrátka nenechává osmělé písmeno na konciřádku.
Funguje bez problémů, až dnes jsem na jeden narazil; Neumí upravit více předložek(/spojek) za sebou.
Např. v textu '... a v případě zájmu .... ' nahradí pouze 1. mezeru: ' ... a v případě zájmu .... '.

fci jsem tedy upravil:

function Predlozky($text,$DelkaPredlozek=1){
    $p[] = "~((\s|\xC2\xA0| )[\w|ě|š|č|ř|ž|ý|á|í|é|ď|ť|ň|ú|ů]{1,$DelkaPredlozek})\s+~is";
    $r[] = '$1 ';
    $text = preg_replace($p, $r, $text);
    return    $text    ;
} 

.. ale stejně tento problém neřeší, nemůžu přijít na to proč..
Poradíte?
tiso
Profil
Pretože ti to zoberie predložku aj z oboma medzerami okolo nej.
$p[] = "~((?<=\s|\xC2\xA0|&nbsp;)[\w|ě|š|č|ř|ž|ý|á|í|é|ď|ť|ň|ú|ů]{1,$DelkaPredlozek})\s+~is";
nethor
Profil
Děkuju.

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: