php sembolleri. Semboller ve çizgiler. PHP'de kaçış

  • 20.06.2020

PHP'de bir dize, herhangi bir uzunlukta bir karakter kümesidir. C'den farklı olarak, dizeler programı hiçbir şekilde etkilemeyecek boş karakterler de içerebilir. Başka bir deyişle, ikili verileri depolamak için dizeler kullanılabilir. Dizenin uzunluğu yalnızca boş RAM'in boyutuyla sınırlıdır.

PHP'de bir karakter bayt ile aynıdır, yani tam olarak 256 farklı karakter mümkündür. Bu aynı zamanda PHP'nin yerleşik Unicode desteğine sahip olmadığı anlamına gelir. Unicode için bir miktar destek, işlevler tarafından sağlanır. utf8_encode() ve utf8_decode() .

Bir dize, standart işlevler kullanılarak kolayca işlenebilir ve içindeki herhangi bir karaktere doğrudan erişilebilir.

Bir dize değişkeninin basit bir örneği:

$a= "Bu yalnızca bir dize değişkenine yazılan metindir";
yankı $a; // "Bu yalnızca bir dize değişkenine yazılan metindir" çıktıları
?>

Şimdi veri tipi sözdizimine daha yakından bakalım. sicim.

Tür dizesinin sözdizimi (dizeler)

Bir dize üç farklı şekilde tanımlanabilir.

Bir dizgiyi tanımlamanın en basit yolu onu tek tırnak içine almaktır (sembol " ).

Diğer birçok dilde olduğu gibi, bir dize içinde tek bir tırnak işareti kullanmak için, önüne bir ters eğik çizgi karakteri gelmelidir ( \ ), yani koruyun. Ters eğik çizginin tek bir alıntıdan önce gelmesi veya bir dizenin sonunda olması gerekiyorsa, onu çoğaltmanız gerekir. Başka bir karakterden kaçmaya çalışırsanız, ters eğik çizginin de yazdırılacağını unutmayın! Bu nedenle, genellikle ters eğik çizginin kendisinden kaçmaya gerek yoktur.

Diğer iki sözdiziminden farklı olarak, içine alınmış dizelerde meydana gelen özel karakterler için değişken ve kaçış dizileri, olumsuzluk işlenmiş.

İşte tek tırnak kullanmanın bir örneği:

Eko "bu basit bir dizedir";

Eko "Ayrıca, satırlara ekleyebilirsiniz
yeni satır karakteri bunun gibi
çünkü sorun yok"
;

// Çıktı: Bir gün Arnold şöyle dedi: "Geri döneceğim"
Eko "Bir gün Arnold "Geri döneceğim" dedi";

Eko "C:\\*.* dosyasını sildiniz mi?";

// Çıktı: C:\*.* sildiniz mi?
echo "C:\*.* sildiniz mi?" ;

// Çıktı: Bu eklenmeyecek: \n yeni satır
Eko "Bu eklenmeyecek: \n yeni satır";

// Çıktı: $expand değişkenleri de $either için değiştirilmez
Eko "$expand değişkenleri de $either yerine kullanılmaz";
?>

Dize çift tırnak içine alınmışsa ( " ), PHP, özel karakterler için daha fazla kaçış dizisi tanır:

kaçış tablosu:

müteakip Anlam
\n yeni satır (ASCII'de LF veya 0x0A (10))
\r satır başı (ASCII'de CR veya 0x0D (13))
\t yatay sekme (ASCII'de HT veya 0x09 (9))
\\ ters eğik çizgi
\$ dolar işareti
\" çift ​​alıntı
\{1,3} normal bir ifadeyle eşleşen bir karakter dizisi, sekizli bir karakter
\x(1,2) normal ifadeyle eşleşen karakter dizisi, onaltılık karakter

Yine, başka bir karakteri anımsamak istiyorsanız, ters eğik çizgi de yazdırılacaktır!

Dizeleri tanımlamanın başka bir yolu kullanmaktır. heredoc-sözdizimi ("<<< "). Sonrasında<<< необходимо указать идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий вставку.

Kapanış tanımlayıcısı, satırın ilk sütununda başlamalıdır. Ek olarak, tanımlayıcı diğer tüm PHP etiketleriyle aynı adlandırma kurallarına uymalıdır: yalnızca alfasayısal karakterler ve alt çizgiler içermeli ve rakam olmayan veya alt çizgi ile başlamalıdır.

Dikkat! Kapanış tanımlayıcısına sahip dizenin, belki bir noktalı virgül dışında başka karakter içermediğine dikkat etmek çok önemlidir ( ; ). Bu, bunun bir tanımlayıcı olduğu ve noktalı virgülden önce veya sonra boşluk veya sekme olamayacağı anlamına gelir. Kapanış tanımlayıcısından önceki ilk karakterin, işletim sisteminiz tarafından tanımlandığı gibi bir yeni satır karakteri olması gerektiğini anlamak da önemlidir. Örneğin, Windows®'ta bu \r.

Bu kural ihlal edilirse ve kapanış tanımlayıcısı "temiz" değilse, kapanış tanımlayıcısının olmadığı kabul edilir ve PHP onu aramaya devam eder. Bu durumda, doğru kapatma tanımlayıcısı hiçbir zaman bulunamazsa, komut dosyasının sonunda satır numarası olan bir işleme hatasına neden olur.

heredoc-text, bunlara sahip olmadan çift tırnaklı bir dize gibi davranır. Bu, heredoc'taki alıntılardan kaçmanıza gerek olmadığı, ancak yine de yukarıdaki kaçış dizilerini kullanabileceğiniz anlamına gelir. Değişkenler işlenir, ancak bir heredoc içinde karmaşık değişkenler kullanırken dizelerle çalışırken olduğu kadar dikkatli olmanız gerekir.

Heredoc dize tanımı örneği:

$str =<<Çizgi örneği,
birden çok satıra yayılan
heredoc sözdizimini kullanarak.
EOD;

/* Değişkenlerle daha karmaşık bir örnek. */
sınıf foo
{
var $foo ;
var $bar ;

işlev bilgisi()
{
$bu -> foo = "foo" ;
$bu -> bar = dizi("Bar1", "Bar2", "Bar3");
}
}

$foo = yenifoo();
$isim = "Adım" ;

Eko<<Benim adım "$isim". $foo yazıyorum-> foo.
şimdi çıkarıyorum
( $foo -> çubuk [ 1 ]) .
Bu, büyük harfli bir "A" çıktısı vermelidir:
\x41
EOT;
?>

Bir karakter seti alıyoruz:
0 1 2 3 4 5 6 7 8 9: ; ? @ A b c d e f g i j k m n m n o p q r t u v x y z [\] _ `a b c d e f h i j k l £ £ £ ¥ ¥ ¥ ¥ ¬ ¬ ¬ ¬ ¬ ¬‘ £ £ £ £ £ Ä Å Æ Ç È Ê Ë Í Î Ï Ð Ò Ó Ô × Õ Ø Ù Û Ü Ý à à b c ã d å æ z i é ë ì n î î ï ð ñ ò ô õ ö ø ú ú ü ı ş ÿ ā ā Ă Ą ą ą Ċ Č č Ď ď Đ đ ē Ĕ ĕ Ė Ğ ğ Ě ě Ĝ Ğ Ğ ğ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī į İ Į Į ı IJ ij Ĵ ĵ ķ ķ Ĺ ĺ Ļ ļ ľ ŀ ŀ ł ł ń ņ ņ ň ň ő œ œ ŕ ŗ ŗ ř ř ř ś ŝ ŝ ş š σ ŧ ť ŧ ū ū ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭ ŭA?

Bu, burada şu şekilde temsil edilen görünür karakter kümesidir: kaçmak diziler" &#numara". Bu, örneğin, Rus mektubu ANCAK- bu &#1040. Herhangi bir karakterin yerine, tarayıcıda karakterin kendisine dönüştürülen, yani html metnini koyarsanız &#1040, Rus harfi tarayıcıda görünecek ANCAK.

function replace_cyr($path )(
$arama = dizi(""Yo"", ""A"", ""B"", ""C"", ""G"", ""D"", ""E"", ""F"", " "Z", "I", "Y", "K", "L", "M", "N", "O", "P", ""R", ""S"", " "T"", ""U"", ""F"", ""X"", ""C"", ""H"" , ""W"", ""W"", ""b "", ""S"", ""b"", ""E"", ""Yu", ""I"", " "a", "b", "c", "d", "e", "f", "g", "h", "ve "", ""th", ""k", ""l"", ""m"", ""n"", ""o"", ""p"", ""r"" , ""s"", ""t"", ""y"", ""f"", ""x"", "" c"", ""h"", ""w"", " "u", ""b", ""s", ""b", ""e", ""u", ""i" , ""ё", ""0" "e");
$değiştir = dizi("E", "A", "B", "C", "G", "D", "E", "F", "Z", "I", "Y", "K", " L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "X", "C", "H" , "W", "SCH", "b", "S", "b", "E", "Yu", "I", "a", "b", "c", "g", " d", "e", "g", "z", "i", "d", "k", "l", "m", "n", "o", "p", "r" , "s", "t", "y", "f", "x", "c", "h", "w", "u", "b", "s", "b", " e", "yu", "i", "ё", "0");
dönüş preg_replace($ara ,$değiştir ,$yol );
}
$html_text = "ABCD";
Yazdır replace_cyr($html_text);
// çıktıyı al
// &#1040;BVGD
// tarayıcı şunu görecek: ABCD
// yani, bu tür html metni herhangi bir kodlamada görüntülenebilir
?>

Metnin herhangi bir kodlamada değişmeden kalması için tüm Rusça harfleri kaçış eşdeğerlerine değiştiren bir işlev gösterdik. O zaman neden kimse bu yaklaşımı kullanmıyor diyorsunuz? Sonuçta, tarayıcı kodlamalarını kullanamazsınız! Evet, ancak böyle bir html belgesinin küçük bir kötü özelliği vardır - bayt cinsinden boyutu birkaç kat artar ve sayfa çok daha yavaş yüklenir.

Görünen sembollere baktık ama görünmeyenler de var.


Aşağıdaki çıktıyı alıyoruz:
semboller burada görünmez
burada \000 \001 \002 \003 \004 \005 \006 \a \b \t \n \v \f \r karakterlerini görebilirsiniz

İlk önce stringi olduğu gibi yazdırmaya çalıştık, karakter olmadığını görebilirsiniz. Ve ikinci satırda, bu satırın tüm karakterlerinin önüne bir eğik çizgi koyduk ve görünür hale geldiler. Yani, önünde bir eğik çizgi olduğunda bir anlam ifade eden karakterler vardır. Bunlar yazdırılamayan karakterlerdir. En çok ihtiyaç duyulan \n yeni bir satırın satır başı karakteridir. Herhangi bir satırı bitirir. Örneğin, şu anda görüntülediğiniz dosyanın html koduna bakarsanız, metninde karakteri görmezsiniz. \n, ancak her satırın sonundadır, basitçe görünmezdir, çünkü tüm karakterlerinin önüne bir eğik çizgi koyana kadar satır görünmezdi.

Karşılaşacağınız yazdırılamayan karakterler:
\ - Uzay
\n - satır başı yeni bir satıra döner (yeni bir satıra atlar)
\r - satırın başına satır başı (satırın başına atla)
\t - uzunlamasına sekme karakteri (görünmez boşluk)

Örneğin, bir metin dosyasına bir dize yazmak için bunu yapmanız gerekir.

Bu satırları dosyanıza yazarsanız, satırda olmasına rağmen son karakterleri görmezsiniz. Satıra eklenen uzunlamasına sekme görünmez bir boşluk verir, satıra \t koyarsanız, dosyaya yazarsanız, bu karakteri de görmezsiniz, görünmez.
Yani, dosyadan okunan her satırın bittiği akılda tutulmalıdır. \n veya Windows sistemlerinde \r\n, bir dosyaya satır yazarken, her satırın sonuna \n koymak gerekir ve ayrıca dosyadan okunan satırda \t olabilir.

Yazdırılamayan karakterler olduğunu gördünüz:

\000 \001 \002 \003 \004 \005 \006 \a \b \v \f \r

Bunlar Binary dosyaları oluşturmak için gerekli oldukları için bizim için çok zararlı karakterlerdir. Gelecekte, verileri yalnızca basit dosyalarda kaydedeceğiz, bu nedenle bu karakterler bilinmeyen kaynaklardan aldığımız her şeyden kaldırılmalıdır. Yani dosyalarımıza veri yazmadan önce zararlı karakterleri kaldıracağız.

gelecekte de işimize yarayacak olan tüm yazdırılabilir karakterleri ve iki yazdırılamaz karakterleri bıraktık.

Yazdır "\300 \301 \302 \303 \304 \305 \306 \307 \310 \311 \312 \313 \314 \315 \316 \317 \320 \321 \322 \323 \324 \325 \326 \327 \330 \331 \332 \333 \334 \335 \336 \337 \340 \341 \342 \343 \344 \345 \346 \347 \350 \351 \352 \353 \354 \355 \356 \357 \360 \361 \362 \363 \364 \365 \366 \367 \370 \371 \372 \373 \374 \375 \376 \377";
?>

Komut dosyasının çıktısında şunu elde ederiz:
A B C D E F G I J K L M N O P R S T U V W Y Z t u v x t h w y y y y y z
Yani, satırda bu şekilde yazılan \300 sembolü, basıldığında bir Rus harfi ile değiştirildi. ANCAK. Sonuç olarak, bu şekilde alfabemizi yazdırdık.

Yani, eğik çizgi, önündeki karakterleri değiştirmeye yarar, yazdırılamaz karakterler vardır, ancak yazdırılabilir karakterler de vardır.

Sonuç olarak, karakterlerin neler olabileceğini düşündük.
Yazdırılabilir - bunlar yazdırıldıktan sonra görünecek karakterlerdir.
Bir metin dosyasına yazılan "\something" gibi yazdırılmayan karakterler, satırda bulunsalar da gözle görülemezler.

Kötü karakterler.

Yakından bakarsak, bazı karakterlerin birkaç şekilde ifade edildiğini göreceğiz, bazen bu, bu tür karakterlere sahip sayfaları işlemeyi zorlaştırıyor ve örneğin bize gönderdikleri kullanıcı verilerini yazdırdığımızda hayatı bizim için daha da zorlaştırıyor. Ziyaretçi defteri vb. Yani, tekrarlanan tüm karakterlerin tek bir karakterle değiştirilmesi arzu edilir. . İlk bakışta bu çılgınca bir fikir gibi görünse de Html metninizde bir şeyi değiştirmek istediğiniz gerçeğiyle karşılaştığınızda "karakter sıralaması" sorunuyla karşı karşıya kalacaksınız. Ardından, metindeki tüm eşdeğerleri dört ana eşdeğere değiştiren bir işlevi ele alacağız: "" - ...

Çift Bekar kısa çizgi üç nokta
Sembol " - ...
Html metninde eşdeğer " (") " - ...
Benzer anlam eşdeğerleri,
HTML metninde görüntülenir
“
”
«
»
“
”
«
»
‘
’
‘
’
–
—
–
—
… …

Bir işlev oluştur tüm çift tırnakları değiştirmek için tek bir birleşik kayıt başına: "

Şimdi yerini alacak bir fonksiyonumuz var. HTML metni tüm çift tırnaklar " ile, tüm tek tırnaklar " ile, tüm tire benzeri karakterler - ile, tümü üç nokta, yalnızca üç nokta.

İyi,
Lütfen, kullanıcıdan herhangi bir biçimde, tamamen kötü niyetli kaka da dahil olmak üzere, metin kabul etmeniz gerekirse ne yapacağımı söyleyin.
Verilerini nasıl işleyebilirim ve betiğin eğilip mysql veritabanına kaydedilmemesi ve ardından sonuçların ekranda görüntülenmesi için nasıl yapabilirim ...
örneğin tiniurl gibi.
Genel olarak, değiştirilebilmesi için lütfen bana php ve mysql için kötü niyetli karakterleri söyleyin.
Standart kakayı taradım, ancak diğer x'ler ne yapmalı, aksi takdirde sızdıran bir senaryom var. : (belki

Cevap:


Bir sorum var.
Dizilerin sonunda ne anlama geliyor?
"0"
""0"e"

Cevap: e - İşlem Php kodunu tüm elemanları eşdeğerleriyle değiştirerek... Sıfırı sıfırla değiştirme kararı kişisel olarak bana aittir, çünkü daha uygun bir uygun değiştirme bulamadım... Olduğu gibi, evrenseldir. ve her şey için uygun... öyleyse nasıl, bazen hangi ikameleri yapacağımızı bilmiyoruz, ama Dinamik olarak diziler oluşturuyoruz, NE değiştirdiğimizi ve NE İÇİN değiştirdiğimizi.


Yazara çok teşekkürler, yoksa üç nokta beni histeriye getirdi.

Cevap: evet, üç nokta kötü şeylerden biridir...


Yazara büyük saygı!
Uzun zamandır bilgi aramak için interneti kazıyordum ve işte aydınlanma!
Tekrar teşekkürler!

Cevap:


Selamlar. Petersburg barındırma hizmetinden taşındı (burada çok daha ucuz ve kimse yarım saat boyunca oluşturulan kutuya spam göndermiyor), ancak bir komisyona bastı - MySQL ile Rus harfleri yerine görüntüleniyor ?????
nasıl üstesinden geleceğimi söyle? adı Rusça harflerle yazdı - alındı ​​????? RUBAS. kodlama her zaman utf-8'dir

Cevap: orada kodir.html okuyun. Ayrıca kodlamalar hakkında üç sayfa var. Standart fonksiyonlarımızı alın, deneyin. Büyük olasılıkla, win-1251'deki veritabanından çıktı, sonra


Satır satırını anlarsam yeni satıra dön \n

Cevap:


Sayfa: 1
Geçerli sayfa: 1 Toplam mesaj: 6

HTML özel karakterleri, metin dosyalarında kullanılan karakter kümesindeki karakterlere atıfta bulunan özel dil yapılarıdır. Aşağıdaki tablo, klavye kullanılarak bir HTML belgesinin kaynak koduna eklenemeyen ayrılmış ve özel karakterleri listeler:

  • klavye kullanılarak girilemeyen karakterler (örneğin, telif hakkı simgesi)
  • işaretleme amaçlı semboller (örneğin, büyük veya küçük işareti)

Bu tür karakterler, sayısal bir kod veya ad kullanılarak eklenir.

Sembolsayısal kodSembol adıTanım
" " " tırnak işareti
" " " kesme işareti
& & & ve işareti
< < daha az işaret
> > > daha fazla işaret
Bölünemez boşluk (Bölünemez boşluk, bir satırın içinde normal bir boşluk olarak görünen, ancak görüntüleme ve yazdırma programlarının bu noktada satırı kesmesini önleyen bir boşluktur.)
¡ ¡ ¡ ters ünlem işareti
¢ ¢ ¢ sent
£ £ £ 1 pound = 0.45 kg.
¤ ¤ ¤ para birimleri
¥ ¥ ¥ yen
¦ ¦ ¦ kırık dikey çubuk
§ § § bölüm
¨ ¨ ¨ aralık (kiril)
© telif hakkı işareti
ª ª ª kadın sıra indeksi
« « « Fransızca tırnak işaretleri (Noel ağaçları) - sol
¬ ¬ ¬ olumsuzluk-ifadeler
® ® ® tescilli marka
¯ ¯ ¯ makron aralığı
° ° ° derece
± ± ± artı veya eksi
² ² ² üst simge 2
³ ³ ³ üst simge 3
´ ´ ´ akut aralık
µ µ µ mikro
paragraf
· · · orta nokta
¸ ¸ ¸ aralık cedilla
¹ ¹ ¹ üst simge 1
º º º erkek sıra indeksi
» » » Fransızca tırnak işaretleri (Noel ağaçları) - sağ
¼ ¼ ¼ 1/4 kısım
½ ½ ½ 1/2 kısım
¾ ¾ ¾ 3/4 parça
¿ ¿ ¿ ters soru işareti
× × × çarpma işlemi
÷ ÷ ÷ bölüm
́ ́ stres
Œ Œ Œ bağ büyük harf OE
œ œ œ küçük harf oe
Š Š Š S taç ile
š š š taç ile küçük S
Ÿ Ÿ Ÿ taç ile sermaye Y
ƒ ƒ ƒ kancalı f
ˆ ˆ ˆ dikratik aksan
˜ ˜ ˜ küçük tilde
- kısa çizgi
kısa çizgi
sol tek alıntı
sağ tek alıntı
alt tek alıntı
sol çift tırnak
sağ çift tırnak
alt çift tırnak
hançer
çift ​​hançer
. mermi
yatay üç nokta
ppm (binde)
dakika
saniye
tek sol açı alıntı
tek dik açı alıntı
üst çizgi
Euro
™ veya marka
sol ok
yukarı ok
sağ ok
aşağı ok
çift ​​taraflı ok
satır başı ok
üst sol köşe
sağ üst köşe
sol alt köşe
sağ alt köşe
eşkenar dörtgen
zirveler
vaftiz etmek
solucanlar
bubi

HTML'de Desteklenen Matematiksel Semboller

Sembolsayısal kodSembol adıTanım
herkes için, herkes için
Bölüm
var
boş küme
Hamilton operatörü ("nabla")
sete ait
sete ait değil
veya
toplam
eksi
çarpma veya operatöre bitişik
× × &zamanlar çarpma işareti
Kare kök
orantılılık
sonsuzluk
çokluk
köşe
ve
veya
kavşak
bir dernek
integral
bu yüzden
beğenmek
karşılaştırılabilir
yaklaşık olarak eşittir
eşit değil
aynı şekilde
daha az veya eşit


daha az veya eşit
daha fazla veya eşit


daha fazla veya eşit
alt küme
süper setler
bir alt küme değil
alt küme
süper set
doğrudan toplam
tenzer ürün
dik
nokta operatörü

Yunan ve Kıpti alfabeleri

Sembol sayısal kod altıgen kod Sembol adı
Ͱ Ͱ Ͱ
ͱ ͱ ͱ
Ͳ Ͳ Ͳ
ͳ ͳ ͳ
ʹ ʹ ʹ
͵ ͵ ͵
Ͷ Ͷ Ͷ
ͷ ͷ ͷ
ͺ ͺ ͺ
ͻ ͻ ͻ
ͼ ͼ ͼ
ͽ ͽ ͽ
; ; ;
΄ ΄ ΄
΅ ΅ ΅
Ά Ά Ά
· · ·
Έ Έ Έ
Ή Ή Ή
Ί Ί Ί
Ό Ό Ό
Ύ Ύ Ύ
Ώ Ώ Ώ
ΐ ΐ ΐ
Α Α Α Α
Β Β Β Β
Γ Γ Γ Γ
Δ Δ Δ Δ
Ε Ε Ε Ε
Ζ Ζ Ζ Ζ
Η Η Η Η
Θ Θ Θ Θ
Ι Ι Ι Ι
Κ Κ Κ Κ
Λ Λ Λ Λ
Μ Μ Μ Μ
Ν Ν Ν Ν
Ξ Ξ Ξ Ξ
Ο Ο Ο Ο
Π Π Π Π
Ρ Ρ Ρ Ρ
Σ Σ Σ Σ
Τ Τ Τ Τ
Υ Υ Υ Υ
Φ Φ Φ Φ
Χ Χ Χ Χ
Ψ Ψ Ψ Ψ
Ω Ω Ω Ω
Ϊ Ϊ Ϊ
Ϋ Ϋ Ϋ
ά ά ά
έ έ έ
ή ή ή
ί ί ί
ΰ ΰ ΰ
α α α α
β β β β
γ γ γ γ
δ δ δ δ
ε ε ε ε
ζ ζ ζ ζ
η η η η
θ θ θ θ
ι ι ι ι
κ κ κ κ
λ λ λ λ
μ μ μ μ
ν ν ν ν
ξ ξ ξ ξ
ο ο ο ο
π π π π
ρ ρ ρ ρ
ς ς ς ς
σ σ σ σ
τ τ τ τ
υ υ υ υ
φ φ φ φ
χ χ χ χ
ψ ψ ψ ψ
ω ω ω ω
ϊ ϊ ϊ
ϋ ϋ ϋ
ό ό ό
ύ ύ ύ
ώ ώ ώ
Ϗ Ϗ Ϗ
ϐ ϐ ϐ
ϑ ϑ ϑ ϑ
ϒ ϒ ϒ ϒ
ϓ ϓ ϓ
ϔ ϔ ϔ
ϕ ϕ ϕ ϕ
ϖ ϖ ϖ ϖ
ϗ ϗ ϗ
Ϙ Ϙ Ϙ
ϙ ϙ ϙ
Ϛ Ϛ Ϛ
ϛ ϛ ϛ
Ϝ Ϝ Ϝ Ϝ
ϝ ϝ ϝ ϝ
Ϟ Ϟ Ϟ
ϟ ϟ ϟ
Ϡ Ϡ Ϡ
ϡ ϡ ϡ
Ϣ Ϣ Ϣ
ϣ ϣ ϣ
Ϥ Ϥ Ϥ
ϥ ϥ ϥ
Ϧ Ϧ Ϧ
ϧ ϧ ϧ
Ϩ Ϩ Ϩ
ϩ ϩ ϩ
Ϫ Ϫ Ϫ
ϫ ϫ ϫ
Ϭ Ϭ Ϭ
ϭ ϭ ϭ
Ϯ Ϯ Ϯ
ϯ ϯ ϯ
ϰ ϰ ϰ ϰ
ϱ ϱ ϱ ϱ
ϲ ϲ ϲ
ϳ ϳ ϳ
ϴ ϴ ϴ
ϵ ϵ ϵ ϵ
϶ ϶ ϶ ϶
Ϸ Ϸ Ϸ
ϸ ϸ ϸ
Ϲ Ϲ Ϲ
Ϻ Ϻ Ϻ
ϻ ϻ ϻ
ϼ ϼ ϼ
Ͻ Ͻ Ͻ
Ͼ Ͼ Ͼ
Ͽ Ͽ Ͽ

Özel karakterlere neden ihtiyaç duyulur ve nasıl kullanılır?

Sayfanızda bazı etiketleri tanımlamaya karar verdiğinizi, ancak tarayıcı karakterleri kullandığı için< и >bir başlangıç ​​ve bitiş etiketi gibi, bunları html içeriğinize uygulamak sorunlara yol açabilir. Ancak HTML, bu ve diğer özel karakterleri tanımlamanın kolay bir yolunu sunar. sembol referansları.

Nasıl çalıştığını görelim. Özel kabul edilen veya web sayfanızda kullanmak istediğiniz ancak editörünüzde yazamadığınız her karakter için (telif hakkı karakteri gibi) bir kısaltma bulur ve istediğiniz karakter yerine html koduna yazdırırsınız. Örneğin, ">" sembolü için kısaltma - > , ve sembolü için "<" - < .

"Element" yazdırmak istediğinizi varsayalım. çok önemli" sayfasındadır. Bunun yerine, girişi doğru bir şekilde görüntülemek için ihtiyaç duyduğunuz sembollere referanslar kullanmanız gerekecek ve sonuç olarak, koddaki girişiniz şöyle görünmelidir:

eleman çok önemli

Denemek "

Dikkat etmeniz gereken bir diğer özel karakter ise & (ve işareti) sembolüdür. HTML sayfanızda görünmesini istiyorsanız, & karakteri yerine & referansını kullanın.

(PHP 4, PHP 5, PHP 7)

htmlözel karakterler- Özel karakterleri HTML varlıklarına dönüştürür

Tanım

Sicim htmlözel karakterler ($dize [, int $bayraklar = ENT_COMPAT | ENT_HTML401 [, string $kodlama = ini_get("default_charset") [, bool $double_encode = doğru ]]])

HTML'de bazı karakterlerin özel anlamları vardır ve anlamlarını korumak için HTML varlıkları olarak temsil edilmeleri gerekir. Bu işlev, bu dönüşümlerin gerçekleştirildiği dizeyi döndürür. Tüm olası varlıkları dönüştürmeniz gerekiyorsa htmlentities() .

Giriş dizesi bu işleve iletiliyorsa ve sonuçta ortaya çıkan belge aynı karakter kodlamasını kullanıyorsa, bu işlev, verileri HTML belgesinin çoğu bölümüne eklemeye hazırlamak için yeterlidir. Ancak, veriler, ortaya çıkan belgenin karakter kodlamasında tanımlanmayan karakterler içeriyorsa ve bu karakterlerin (sayısal veya adlandırılmış varlıklar olarak) saklanmasını bekliyorsanız, bu ve htmlentities() işlevler (yalnızca ilgili varlıklara sahip alt dizeleri dönüştürür). işlevi kullanmanız gerekir mb_encode_numericity() .

Aşağıdaki dönüşümler yapılır:

  • "&" (ve işareti) "&" biçimine dönüştürülür
  • """ (çift tırnak) modunda """ biçimine dönüştürülür ENT_NOQUOTES ayarlanmadı.
  • """ (tek tırnak) yalnızca modda """ (veya ") biçimine dönüştürülür ENT_QUOTES.
  • "<" (знак "меньше чем") преобразуется в "<"
  • ">" (işaretten büyük) ">" biçimine dönüştürülür

Parametre Listesi

Dönüştürülecek dize ( sicim ).

Tırnakların, geçersiz kodlamaların ve kullanılacak belge türünün nasıl işlendiğini belirleyen aşağıdaki bayraklardan oluşan bir bit maskesi. Varsayılan ENT_COMPAT | ENT_HTML401.

Bayraklar parametresi için mevcut değerler
Sabitin adı Tanım
ENT_COMPAT Çift tırnakları dönüştürür, tek tırnakları değiştirmez.
ENT_QUOTES Hem çift hem de tek tırnakları dönüştürür.
ENT_NOQUOTES Hem çift hem de tek tırnakları değişmeden bırakır.
ENT_IGNORE Boş bir dize döndürmek yerine, geçersiz kod dizilerini herhangi bir bildirim mesajı olmadan atar. Bu bayrağın kullanılması, » olumsuz güvenlik etkilerine yol açabileceğinden önerilmez.
ENT_SUBSTITUTE UTF-8 ve FFFD kullanırken geçersiz kodlamaları Unicode değiştirme karakteri U+FFFD ile değiştirir; boş bir dize döndürmek yerine farklı bir kodlama kullanırken.
ENT_DISALLOWED Verilen belge türü için geçersiz karakter kodlarını, unicode değiştirme karakteri U+FFFD (UTF-8) veya FFFD ile değiştirir; (farklı bir kodlama kullanırken) olduğu gibi bırakmak yerine. Bu, örneğin, gömülü harici içeriğe sahip XML belgelerinin resmi olarak iyi biçimlendirildiğinden emin olmak için yararlı olabilir.
ENT_HTML401 HTML 4.01'e göre kod işleme.
ENT_XML1 XML 1'e göre kod işleme.
ENT_XHTML XHTML'ye göre kod işleme.
ENT_HTML5 HTML 5'e göre kod işleme.
kodlama

Karakterleri dönüştürürken kullanılan kodlamayı belirten isteğe bağlı bir bağımsız değişken.

Belirtilmezse, kodlama için varsayılan değer, kullanılan PHP sürümüne bağlıdır. PHP 5.6 ve sonraki sürümlerde, varsayılan değer için yapılandırma seçeneği kullanılır default_charset. PHP 5.4 ve 5.5 kullanımı UTF-8 varsayılan. PHP kullanımının önceki sürümleri ISO-8859-1.

Bu argüman teknik olarak isteğe bağlı olsa da, PHP 5.5 veya daha üstünü kullanıyorsanız veya yapılandırma seçeneğiniz default_charset giriş için yanlış ayarlanmış olabilir.

Bu kodlama işlevinin amaçları için ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 ve KOI8-R dize dizesinin kendisinin belirtilen kodlamada geçerli karakterler içerdiğini ve ardından karakterlerin değiştirildiğini varsayarak pratik olarak eşdeğerdir. htmlözel karakterler(), tüm bu kodlamalarda aynı yerlerde kalacaktır.

Aşağıdaki kodlamalar desteklenir:

Desteklenen kodlamalar
kodlama takma adlar Tanım
ISO-8859-1 ISO8859-1 Batı Avrupa Latince-1.
ISO-8859-5 ISO8859-5 Nadiren kullanılan Kiril kodlaması (Latin/Kiril).
ISO-8859-15 ISO8859-15 Batı Avrupa Latin-9. Latin-1(ISO-8859-1) karakter kümesine euro işareti, Fransızca ve Fince harfleri ekler.
UTF-8 ASCII ile uyumlu 8 bit Unicode.
cp866 ibm866, 866 DOS'ta kullanılan Kiril kodlaması.
cp1251 Windows-1251, win-1251, 1251 Windows'ta kullanılan Kiril kodlaması.
cp1252 Windows-1252, 1252 Windows tarafından kullanılan Batı Avrupa kodlaması.
KOI8-R koi8-ru, koi8r Rusça kodlama
BÜYÜK 5 950 Geleneksel Çince, çoğunlukla Tayvan'da kullanılır.
GB2312 936 Basitleştirilmiş Çince, standart ulusal kodlama.
BIG5-HKSCS Hong Kong'da kullanılan Genişletilmiş Big5.
Shift_JIS SJIS, SJIS-kazan, cp932, 932 Japonca kodlama
EUC-JP EUCJP, eucJP-kazan Japonca kodlama
MacRoman Mac OS'de kullanılan kodlama.
"" Boş bir dize, komut dosyasından (Zend multibyte) kodlama algılama modunu etkinleştirir, default_charset ve geçerli yerel ayar (bkz. nl_langinfo() ve yerel ayar() ) bu sırayla. Kullanım için tavsiye edilmez.

Yorum: Diğer kodlamalar desteklenmez, bunun yerine varsayılan kodlama uygulanacaktır ve bir uyarı oluşturulacaktır.

double_encode

Double_encode seçeneği devre dışı bırakılırsa, PHP mevcut html varlıklarını dönüştürmez. Varsayılan olarak, her şey kısıtlama olmaksızın dönüştürülür.