php Π’ΠΈΠΏΠΎΠ³ΡΠ°Ρ
Π’ΠΈΠΏΠΎΠ³ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° php, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°ΡΡΡΠ°Π²ΠΈΡΡ Π½Π΅ΡΠ°Π·ΡΡΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
composer require akh/typograf
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
$t = new \Akh\Typograf\Typograf();
$typoText = $t->apply('"ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!"');
echo $typoText; //Β«ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!Β»
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»
$t = new \Akh\Typograf\Typograf();
// ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ
$t->enableRule('Nbsp\ReplaceNbsp');
// ΠΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² Π³ΡΡΠΏΠΏΠ΅
$t->enableRule('Nbsp\*');
// ΠΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°
$t->enableRule('*');
// ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ
$t->disableRule('Nbsp\ReplaceNbsp');
// ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² Π³ΡΡΠΏΠΏΠ΅
$t->disableRule('Nbsp\*');
// ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°
$t->disableRule('*');
Π§Π°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠ°ΡΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ°, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΡΠ½ΡΡ Π²
<span class="no-typo">"ΠΡΠΈΠ²Π΅Ρ"</span>
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°
$typo = new \Akh\Typograf\Typograf();
$simpleRule = new class extends \Akh\Typograf\Rule\AbstractRule {
public $name = 'ΠΠ°ΠΌΠ΅Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ°ΠΉΡΠ°';
protected $sort = 1000;
public function handler(string $text): string
{
return str_replace('old.ru', 'new.ru', $text);
}
};
$typo->addRule($simpleRule);
$typo->apply('old.ru'); //new.ru