PHP-də ZIP arxivinin yaradılması. WordPress-də Xüsusi Arxiv Səhifəsinin yaradılması Müzakirə detalları arxiv php
Sizdən ən az istifadə etdiyiniz standart WordPress səhifə növünü soruşsam, cavabınız çox güman ki, arxiv şablonu olacaq. Və ya, daha çox, arxiv şablonu haqqında heç eşitməmisiniz - bu, çox populyar deyil. Səbəbi sadədir. Arxivlərdən istifadənin standart üsulu istifadəçi dostu olmaqdan uzaqdır.
Gəlin bunu bu gün düzəldək! Həqiqətən faydalı olacaq bir WordPress arxiv səhifəsi yaradaq. Ən yaxşısı odur ki, siz bu arxivlərdən saytınızda quraşdırılmış istənilən müasir WordPress mövzusunda istifadə edə biləcəksiniz. Bununla belə, gəlin əvvəlcə “arxiv səhifəsi” dedikdə nəyi nəzərdə tutduğumuzu anlayaq?
WordPress Arxiv Tarixi
WordPress-də qutudan çıxan bir çox müxtəlif şablon və struktur elementlərlə işləyirsiniz. Defolt Twenty Fifteen mövzusunun kataloq siyahısına baxsaq, aşağıdakıları görürük:
- 404 səhv səhifəsi
- Arxiv səhifəsi (bugünkü qonağımız)
- Şəkil Qoşma Səhifəsi
- İndeks səhifəsi (əsas səhifə)
- Səhifə şablonu (standart səhifələr üçün)
- Axtarış nəticələri səhifəsi
- Fərdi Post və Qoşma Səhifələri
Fərqli məqsədlərə baxmayaraq, bu səhifələr struktur baxımından çox oxşardır, çox vaxt yalnız bir neçə sahədə və ya bir neçə kod sətirində fərqlənir. İndeks səhifəsi ilə arxiv səhifəsi arasında yeganə görünən fərq yuxarıdakı əlavə başlıqdır və baxılan səhifədən asılı olaraq dəyişir.
Arxiv strukturunun ideyası blog administratoruna müxtəlif meyarlar əsasında arxivləri göstərmək üçün rahat və sadə üsul təklif etməkdir. Axı, bütün bu müxtəlif arxiv səhifələri yalnız indeks səhifəsinin versiyalarıdır; onlar müəyyən bir müddət ərzində, müəyyən bir müəllif tərəfindən, müəyyən etiketlər və kateqoriyalar ilə nəşr olunan məzmunu göstərirlər.
Bu, proqramçı baxımından yaxşı səslənir, lakin istifadəçi baxımından bu, ən əlverişli yanaşma deyil. Bu halda, bir mühüm səviyyə çatışmır - istifadəçinin məzmunu tapmaq niyyəti ilə arxivin ayrı-ayrı elementləri arasında olan səviyyə.
Demək istədiyim budur. Hal-hazırda, WordPress saytında arxivləşdirilmiş bağlantıları göstərməyin yeganə daxili yolu vidcetdir. Beləliklə, əgər siz istifadəçilərə arxivləri daha dərindən qazmağa icazə vermək istəsəniz və bunu insanların başa düşəcəyi şəkildə etmək istəsəniz, bütün yan paneli yalnız arxivlərə həsr etməli olacaqsınız (sadəcə müxtəlif strukturlaşma növlərini ifşa etmək üçün: arxivlər tarix, kateqoriya üzrə arxivlər, arxiv etiketləri, müəllif hüquqları arxivləri və s.).
Bizə bir növ vasitəçi, bir növ səhifə lazımdır ki, ziyarətçini qarşılayacaq, arxivdə olduğunu ona izah edəcək və onun maraqlandığı məzmunu göstərəcək və ya populyar məzmunu təklif edəcək.
Bu səbəbdən biz fərdi arxiv səhifəsi yaratmağa qərar verdik.
WordPress-də Xüsusi Arxiv Səhifəsini Necə Yaratmaq olar
Biz nə edəcəyik. Fərdi arxiv səhifəmiz fərdi səhifə şablonuna əsaslanacaq. Bu şablon bizə aşağıdakıları etməyə imkan verəcək:
- Fərdi mesaj əlavə edin (mətn, şəkillər, qeydiyyat forması və s. ola bilər - standart WordPress məzmunu).
- Son 15 qeydi göstərin (konfiqurasiya edilə bilər)
- Müəllif arxivlərinə keçidləri göstərin
- Arxivlərə keçidləri aylara görə göstərin
- Əlavə widget sahələrinə sahib olun (məşhur məzmun, kateqoriyalar, teqlər kimi şeyləri göstərmək üçün).
Nəhayət, səhifə həssas olacaq və istənilən vebsaytda istifadə edilə bilər.
Bununla belə, bir mövzu ilə başlamalıyıq. Mən Zerif Lite mövzusundan istifadə etdim. Etiraf edirəm ki, bu, bizim öz mövzularımızdan biridir. Bununla belə, WordPress tema kataloqunda keçən il nəşr olunan ən populyar 10 mövzudan biridir. Buna görə də istifadə edəcəyinizi ümid edirəm.
Bəli, əgər mövzu xoşunuza gəlmirsə, mübahisə etməyə ehtiyac yoxdur. Bu məqalədə təqdim olunan yanaşmadan hər hansı digər mövzu ilə bağlı istifadə edə bilərsiniz.
Əsas fayldan başlayaq
Arxiv səhifəsi yaratmaq üçün ən yaxşı model bəzi səbəblərə görə cari temanızın page.php faylıdır:
- Onun strukturu artıq əsas məzmun blokunda ixtiyari məzmunu göstərmək üçün optimallaşdırılıb
- Bu, bəlkə də mövzu strukturunuzdakı ən sadə səhifə şablonlarından biridir.
Buna görə də Zerif Lite mövzusunun page.php faylından istifadə edəcəyik. Mən onun surətini yaradacağam və onu tmpl_archives.php adlandıracağam.
(Səhifəni page-archives.php adlandırmadığınızdan əmin olun. "səhifə-" ilə başlayan bütün fayl adları əsas WordPress tema faylı iyerarxiyasında yeni səhifə şablonları kimi qəbul ediləcək. Bu səbəbdən tmpl_ prefiksindən istifadə etdik) .
Gəlin onu aşağıdakı kimi dəyişək:
Bütün bu xətt arxiv səhifəmiz üçün müvafiq məzmun faylına keçməkdir.
Arxiv səhifənizdən lazımsız görünən digər elementləri silə bilərsiniz (məsələn, şərhlər), lakin HTML strukturu ilə əlaqəli bütün elementləri sildiyinizə əmin olun. Və ümumiyyətlə, sınaqdan qorxma. Axı, birdən bir şey işləməyi dayandırarsa, həmişə əvvəlki koda qayıda və onu asanlıqla düzəldə bilərsiniz.
Bundan əlavə, faylınızın ən əvvəlində (bizim halda, tmpl_archives.php faylında) yerləşdirilməli olan standart şərhi - şablonun təsvirini unutmayın:
Sonda biz aşağıdakı strukturla qalacağıq (rahatlıq üçün bəzi elementlər çıxarılmaqla):
Bu faylda biz yalnız struktur elementləri, həmçinin əsas WordPress funksiyalarına zəngləri tərk edərək bütün lazımsız şeyləri silməliyik:
Kodun ən ortasındakı yer tutucu şərhi daha sonra xüsusi elementlərimizi daxil edəcəyimiz yerdir.
Fərdi salamlama əlavə edin
WordPress özü artıq bununla məşğul olub. Sadəcə aşağıdakı sətri daxil etməliyik:
Yeni widget sahələrinin əlavə edilməsi
Standart prosesdən istifadə edərək WordPress-də yeni widget sahələrini quraq. Mövzudan mövzuya təkrar istifadə edilə bilən şeyləri saxlamaq üçün bunu əlavə funksiyalar faylı ilə edəcəyik. Biz yeni fayl, archives-page-functions.php yaradacağıq, onu əsas mövzu qovluğuna yerləşdirəcəyik, həmçinin iki yeni vidcet sahəsini qeyd edəcəyik:
If(!function_exists("archives_page_widgets_init")) : function archives_page_widgets_init() ( /* İlk arxiv səhifəsi vidceti, SOL tərəfdə göstərilir. */ register_sidebar(array("name" => __("Arxiv səhifəsi vidceti SOL", "zerif -lite"), "təsvir" => __("Bu vidcet arxiv səhifənizin sol tərəfində göstəriləcək.", "zerif-lite"), "id" => "arxivlər-left", "widgetdən əvvəl" => "
", "başlıqdan əvvəl" => "", "son_başlıq" => "
",)); /* İkinci arxiv səhifəsi vidceti, SAĞ tərəfdə göstərilir. */ register_sidebar(array("name" => __("Arxiv səhifəsi vidceti RIGHT", "zerif-lite"), "təsvir" => __ ("Bu vidcet arxiv səhifənizin sağ tərəfində göstəriləcək.", "zerif-lite"), "id" => "archives-right", "before_widget" => " ", "başlıqdan əvvəl" => "", "son_başlıq" => "
",)); ) endif; add_action("widgets_init", "archives_page_widgets_init");If(!function_exists("archives_page_styles")) : function archives_page_styles() ( if(is_page_template("tmpl_archives.php")) ( wp_enqueue_style("archives-page-style", get_template_directory_uri() . "-səhifə. css"); // WP-də üslub vərəqlərinin əlavə edilməsinin standart yolu. ) ) endif; add_action("wp_enqueue_scripts", "arxiv_səhifə_üslubları");
Bu şərti növbə əməliyyatıdır. Bu, yalnız ziyarətçi arxivləşdirilmiş səhifəyə baxdıqda işləyəcək.
Mövcud mövzunun functions.php faylının sonuna aşağıdakı sətri əlavə etməklə yeni archives-page-functions.php faylımızı daxil etməyi unutmamalıyıq:
get_template_directory() tələb edin. "/archives-page-functions.php";
Nəhayət, əsas content-tmpl_archives.php faylımızda istifadə edəcəyimiz yeni blok olduqca sadədir. Aşağıdakı kodu the_content();
İndi bizə qalan yeganə çatışmayan fayl olan archives-page-style.css-in qayğısına qalmaqdır. Bununla belə, gəlin bunu sonraya buraxaq, çünki biz onu fərdi arxiv səhifəmizin bütün üslubları üçün, o cümlədən vidjetlər üçün depo kimi istifadə edəcəyik.
Son 15 qeyd göstərilir
Bunu etmək üçün bəzi əl ilə PHP kodlaşdırması etməliyik. Yazıların nümayişi müxtəlif vidjetlərdən istifadə etməklə həyata keçirilə bilsə də, gəlin monotonluqdan qaçaq və daha fərqli imkanlar nümayiş etdirmək üçün kodlaşdırmaya dalaq.
Yəqin ki, niyə 15 giriş olduğunu soruşursunuz? Bilmirəm, mən bu nömrəni havadan çıxartdım. Gəlin onu fərdi sahələrlə fərdiləşdirək.
Biz nə edəcəyik:
- Arxivləşdirilmiş yazılar-xeyr xüsusi sahəsindən istifadə edərək yazıların sayını təyin edirik.
- Əgər nömrə etibarlı deyilsə, şablon son 15 girişin standart dəyərindən istifadə edəcək.
Aşağıda bunu edən kod var. Yeni widget sahələrini idarə edən content-tmpl_archives.php faylında onu əvvəlki bölmənin altına qoyun.
ID, "arxivləşdirilmiş-yazılar-yox", doğru)); /* Burada, biz əldə edilən nömrənin məqbul olduğuna əmin oluruq. Əgər 200-dən yuxarı və ya 2-dən aşağı olarsa, biz onu sadəcə olaraq defolt dəyəri olan 15-ə sıfırlayırıq. */ if($how_many_last_posts > 200 ||. $neçə_son_məlumat< 2) $how_many_last_posts = 15; $my_query = new WP_Query("post_type=post&nopaging=1"); if($my_query->have_posts()) ( əks-səda "
"; əks-səda"
- "; $counter = 1; while($my_query->have_posts() && $counter<= $how_many_last_posts) {
$my_query->Poçt(); ?>
- ">
Bu kodun etdiyi hər şey fərdi sahənin dəyərini əldə etmək, göstəriləcək qeydlərin sayını təyin etmək və sonra WP_Query(); istifadə edərək verilənlər bazasından həmin qeydləri seçməkdir. Mən də bu bloka bir az istedad əlavə etmək üçün bəzi Font Awesome nişanlarından istifadə edirəm.
Müəllif arxivlərinə keçidlər göstərilir
Bu bölmə yalnız çoxlu müəlliflərlə bloq işlədirsinizsə faydalıdır. Bir müəllifiniz varsa, keçin.
Bu funksionallıq content-tmpl_archives.php faylımızda (əvvəlki blokun altında) yerləşdirilməli olan sadə kod blokundan istifadə etməklə həyata keçirilə bilər:
Müəlliflərimiz
Bir neçə dəqiqədən sonra üslublara keçəcəyik. Hələlik diqqət yetirin ki, hər şey wp_list_authors() funksiyasını çağırmaqla edilir.
Arxivlərə keçidlər aylar üzrə göstərilir
Bu elementi ən sonda əlavə etdim, çünki bu, oxucu baxımından ən faydalı komponent deyil. Bununla belə, onun arxiv səhifəsində olması vacibdir ki, saytın başqa yerində ay-ay arxivləri göstərmək üçün vidcetlərdən istifadə etmək məcburiyyətində qalmayasınız.
Bu content-tmpl_archives.php faylında necə görünəcək:
Aya görə
Bu halda, biz onu əyri xətlərlə (|) ayrılmış qeydlərlə ayrıca paraqraf kimi göstərəcəyik.
Arxiv Səhifə Şablonunu tamamlayın
Fərdi arxiv çıxarmaq üçün əsas faylımız olan tam content-tmpl_archives.php faylına nəzər salaq:
Son ".$neçə_çok_son_yazı." Yazılar
"; əks-səda" "; $counter = 1; while($my_query->have_posts() && $counter<= $how_many_last_posts) {
$my_query->Poçt(); ?>
Müəlliflərimiz
Aya görə
Stil vərəqi
Nəhayət, stil cədvəlinə baxaq. archives-page-style.css faylı belə görünür:
Arxivlər-widget-sol ( float: sol; en: 50%; ) .arxivlər-widget-sağ ( float: sol; padding-sol: 4%; en: 46%; ) .arxivlər-son bölmə ( ) .arxivlər -son bölmə ol ( şrift üslubu: kursiv; şrift ölçüsü: 20px; padding: 10px 0; ) .arxivlər-son bölmə ol li ( solda doldurma: 8px; ) .arxivlər-müəlliflər bölməsi ( ) .arxivlər -müəlliflər bölməsi ul (siyahı üslubu: heç biri; mətnin düzülməsi: mərkəz; haşiyə-yuxarı: 1px nöqtəli #888; haşiyə-alt: 1px nöqtəli #888; doldurma: 10px 0; şrift ölçüsü: 20px; kənar: 0 0 20px 0; .arxivlər-müəlliflər-bölmə ul li ( ekran: inline; padding: 0 10px; ).arxiv-müəlliflər-bölmə ul li a ( mətn-bəzək: heç biri; ) .arxivlər-aylar-bölmə ( daxili -align: center; word-spacing: 5px; .arxivlər-ay-bölmələr; ay-bölmə p a ( mətn-bəzək: heç biri; ) @media yalnız ekran və (maksimum eni: 600px) ( .arxiv-widget-left ( en: 100%; ) .arxiv-widget-sağ ( en: 100 %; ) )
Üslublar əsasən şriftlərə və bir neçə struktur elementə aiddir, bir neçə düzülmə, eləcə də sonunda cavab verən dizayn bloku istisna olmaqla.
Bunun praktikada necə görünəcəyini görək. Budur, çoxlu arxiv məzmunu olan sayt:
Bu şablonu istənilən mövzuya necə inteqrasiya etmək olar
Burada yaratdığımız xüsusi arxivlər səhifəsi rəsmi WordPress kataloqunda mövcud olan Zerif Lite mövzusudur. Ancaq dediyim kimi, hər hansı bir mövzu ilə birlikdə istifadə edilə bilər. Bunu necə etmək olar:
- Dərslikdə yaratdığımız archives-page-style.css və archives-page-functions.php fayllarını götürürük və sonra onları əsas mövzu kataloquna yerləşdiririk.
- Mövzunun functions.php-ni redaktə edin və ən sonunda aşağıdakı sətri əlavə edin: tələb get_template_directory() . ‘/archives-page-functions.php’;
- Mövzunun page.php faylını götürün, onun surətini çıxarın, adını dəyişin, get_template_part() funksiya çağırışını get_template_part('content', 'tmpl_archives'); olaraq dəyişdirin, sonra ən əvvəlində təsviri şərh əlavə edin: /* Şablon Adı: Arxiv Səhifəsi Xüsusi */.
- Mövzunuzun content-page.php faylını götürün, onun bir nüsxəsini çıxarın, adını dəyişdirin content-tmpl_archives.php və dərslikdə yaratdığımız bütün fərdi blokları ona, the_content();
- Test edək və həzz edək.
Defolt Twenty Fifteen mövzusunda bunun necə görünəcəyi budur:
Aydındır ki, şablon yaradıcıları üçün bütün sayt səhifələrinin standart görünüşlərini göstərmək üçün standart funksiyalardan və WordPress şablon teqlərindən istifadə etmək daha asandır, lakin bu, vahid görünüş və saytın eyni səhifələrinə keçid hissi yaradır.
Nəticədə nə əldə etdiyimizi dərhal sizə göstərəcəyəm.
WordPress arxivinin növü: dəyişikliklərdən əvvəl kateqoriyaların arxivi
Silinmiş eskizləri olan bölmələrin arxivi və ətraflı məlumat üçün keçid.
Vacibdir! Bu vəzifə şablon kodunun dəyişdirilməsi ilə həll olunduğundan, işdən əvvəl biz (verilənlər bazası + sayt faylları) edirik. Bundan əlavə, iş şablonunun iki nüsxəsini çıxarırıq, biri redaktə etmək üçün, ikincisi isə səhv redaktəni bərpa etmək üçün.
WordPress arxivlərinin görünüşünün dəyişdirilməsi
WordPress arxivlərinin görünüşünü dəyişdirmək üçün iş şablonunuzda hansı faylın arxivləri göstərdiyini tapmaq, daha doğrusu müəyyən etmək lazımdır. Əksər şablonlarda bütün arxivlər bir faylda çıxarılır, ona (archive.php) deyilir.
Təkrar edirəm, saytı itirməkdən təhlükəsiz olmaq üçün biz saytın inzibati panelində redaktordan istifadə etmirik, əksinə şablon fayllarının əvvəllər hazırlanmış ehtiyat nüsxələrini redaktə edirik.
Mətn redaktorunda (məsələn, Notepad++) archive.php faylını açın və redaktə etməyə başlayın. archive.php faylında (faylın sonunda) arxiv bloqunu göstərən funksiyanı axtarırıq:
Ad arxiv bloqunu çıxarmaq üçün istifadə edilən faylın adıdır.
Tapşırığı yerinə yetirmək üçün ilk fikir sadədir: arxivləri (content.php) çıxaran faylın kodunu dəyişdirməliyik, yəni ondan bir neçə funksiyanı silməli və bununla da saytın bütün arxivlərinin (kateqoriyalar, müəlliflər, tarixlər və s.) görünüşünü dəyişdirməliyik.
Amma sual yaranır, əgər şablon faylının kodunu dəyişsək, şablon ilk dəfə yenilənəndən sonra əvvəlki vəziyyətinə qayıdacaq, bu bizə lazım deyil. Ona görə də content.php faylını redaktə etməyəcəyik, onu kopyalayıb başqa adla, məsələn content-cat.php ilə öz faylımızı yaradıb redaktə edəcəyik.
Biz faylda miniatürləri göstərən funksiya axtarırıq. Miniatür funksiyası yuxarıda olacaq. Miniatür çıxışını çıxarırıq.
və yavə "Ətraflı oxu", "şablon adı" ilə sətri silin.
Yaradılmış və redaktə edilmiş content-cat.php faylını saxlayırıq və onu işləyən şablon qovluğunda sayt kataloquna yükləyirik. Bu fayl saytın administrativ panelində Görünüş→Redaktor nişanında görünəcək.
Gəlin ikinci addıma keçək. Arxivləri göstərən faylda (archive.php), fayl adının məzmununu content-cat olaraq dəyişdirin.
Saxlayırıq və nəticəyə baxırıq. Bir şey səhv olarsa, sistem səhv, səhv faylı və xəta xəttini göstərəcək. Səhvi düzəltmək üçün saxlanılan ehtiyat nüsxə şablon fayllarını öz yerinə qaytarın və hər şeyi yenidən təkrarlayın.
Məsləhət.Şablon teqləri və standart WordPress xüsusiyyətləri haqqında daha çox oxumaq istəyirsinizsə, bu sayta diqqət yetirin: https://wp-kama.ru. Bu bir reklam və ya hətta bir keçid deyil, bu sayt şablon və xüsusiyyət etiketləri bölməsində rəsmi WordPress saytından daha aydındır.
Mövzunun inkişafında
Məncə, WordPress saytlarında elanların mövzusu davam tələb edir. Növbəti yazılarda mövzuları müzakirə edəcəyəm: və.
WordPress Kodeksi
Gizli mətn
the_post_thumbnail funksiyası
Funksiya
postun kiçik şəkli
Məqsəd
The_post_thumbnail funksiyası post miniatür şəklinin html kodunu çıxarır, əgər şəkil yoxdursa boş dəyər.
Ərizə
Bu şablon teqi, the_post_thumbnail funksiyası daxili olaraq istifadə edilməlidir
İstifadəsi
the_post_thumbnail(string|massiv $size = "post-thumbnail", string|massiv $attr = "")Mənbə
Fayl: wp-includes/post-thumbnail-template.php
The_post_thumbnail funksiyası($size = "post-thumbnail", $attr = "") ( echo get_the_post_thumbnail(null, $size, $attr); )
Seçimlər
$size (string/massiv)
Qəbul ediləcək kiçik şəklin ölçüsü. Bu şərti ölçüləri olan sətir ola bilər: miniatür, orta, böyük, tam və ya iki elementdən ibarət massiv (şəklin eni və hündürlüyü): massiv(60, 60).
Defolt: ‘post-thumbnail’, yəni set_post_thumbnail_size() funksiyası tərəfindən cari mövzu üçün təyin olunan ölçü
$attr (sətir/massiv)
Yaranan html img teqinə əlavə edilməli olan atributlar massivi (alt alternativ addır).
Defolt:
Misal
" title= "_("permalink"), the_title_attribute("echo=0")); ?>"> !}get("layout", "imgwidth"), $SMTheme->get("layout", "imgheight")), array("class" => $SMTheme->get("layout","imgpos") ." xüsusiyyətli_şəkil")); əgər (!is_single())( ?>2008-ci ildə saytda dərc etdiyimiz ən mühüm xəbərlər bunlardır.
Yeniləmə (6 dekabr): Eksik zip təhlükəsizlik düzəlişi əlavə edildi
Son alfadan bəri çoxlu sayda başqa əlavələr və təkmilləşdirmələr olub, lakin burada ən mühüm dəyişikliklərin qısa icmalı var:
- (sənədlər hazırkı vəziyyətə qədər yeniləndi)
- ext/msql silindi, ext/ereg isə indi E_DEPRECATED bildirişlərini qaldıracaq
- ext/mhash ext/hash ilə əvəz edilib, lakin tam BC saxlanılır
- PHP indi standart kompilyator kimi gcc əvəzinə cc-dən istifadə edir
- Digərləri arasında ext/pdo, ext/soap, axın qatında bir sıra səhvlər düzəldildi
Başlıq altındakı bir neçə dəyişiklik, həmçinin hər hansı geriyə uyğunluq pozulmalarının minimuma endirilməsini təmin etmək üçün mövcud tətbiqlərlə dərin sınaq tələb edir.
Tərtibatçıları, dizaynerləri, menecerləri və ya PHP proqramlaşdırma dili ilə maraqlanan hər kəsin çox münasib qiymətə möhtəşəm hadisə olacağını vəd edən bizə qoşulmasını istərdik:
- Standart biletlər: £60.00
- Erkən quş (8 noyabra qədər): £50.00
- Güzəştli biletlər: £35.00
* Şirkətinizin blankı ilə təsdiq
**Tələbə vəsiqəsi ilə. Məhdud oturacaqlar mövcuddur
Bu alfa buraxılışının məqsədi istifadəçiləri yalnız səhvlərin müəyyən edilməsində fəal iştirak etməyə deyil, həm də sənədlərdə bütün yeni funksiyaların və ya lazımi geriyə uyğun uyğunluq fasilələrinin qeyd olunmasını təmin etməkdir. Lütfən, hər hansı tapıntıları və ya .
Çox sayda başqa əlavələr və təkmilləşdirmələr var, lakin burada ən vacib dəyişikliklərin qısa icmalı var:
- (sənədlər köhnə ola bilər)
- , (phar daha bir alpha2 başlığı üçün nəzərdə tutulub) və uzantıların əlavə edilməsi
- İsteğe bağlı tsiklik zibil yığılması
- libmysql üçün MySQLnd dəyişdirmə sürücüsü üçün əlavə dəstək
- Windows 2000-dən köhnə Windows (Windows 98, NT4 və s.) artıq dəstəklənmir ()
- , məhdud GOTO, üçlü qısa kəsmə "?:" kimi yeni sintaksis xüsusiyyətləri
Başlıq altındakı bir neçə dəyişiklik, həmçinin hər hansı geriyə uyğunluq pozulmalarının minimuma endirilməsini təmin etmək üçün mövcud tətbiqlərlə dərin sınaq tələb edir. Bu, sənədsiz Zend mühərriki multibayt dəstəyi tələb edən istifadəçilər üçün xüsusilə vacibdir.
Bizim ən yaxşı təqdimatçımız Feliks De Vliger son təqdimatlarını əslində özü etdi, çünki təqdimatlarının yüksək keyfiyyətinə əsaslanaraq, ona PHP repozitoriyasına öhdəlik hüququ verilmişdir. Biz bütün iştirakçılardan cavab eşitməmişik, lakin biz hər kəsi öz təcrübələri haqqında bloqda yazmağa və gələcək hadisələri yaxşılaşdırmaq üçün bizə rəy bildirməyə dəvət edirik.
İndi heç vaxtdan daha gec, burada Nexen tərəfindən maliyyələşdirilən vəd edilmiş elePHPant lotereyasının 10 qalibi var. Qeyd edək ki, Feliks məndən onu lotereyaya qatmamağımı xahiş etdi, çünki o, artıq evdə kifayət qədər sayda fil sürür.
- Erik Stüart
- Havard Eide
- Mark Veldman
- Mikelancelo van Dam
- Rein Velt
- Rob Young
- Sami Qrinberi
- Sebastian Deutsch
- Sebastian Schürmann
- Stefan Koopmanschap
Biz Nexen-ə qaliblərin e-poçt ünvanlarını təqdim edəcəyik ki, onlar elePHPants-ın göndərilməsini təşkil etsinlər. Həm də maraqlanan insanlar üçün testləri təqdim etməyə davam edə bilərsiniz. Bütün iştirakçılara və TestFest təşkilatçılarına bir az təşəkkür edirik! Yerli tədbirlərin təşkilinə, infrastrukturun və təqdimatların nəzərdən keçirilməsinə kömək edən saysız-hesabsız insanlar olmasaydı, TestFest açıq-aydın olduğu kimi işləməyəcəkdi. TestFest 2008-in böyük uğuru əsasında biz şübhəsiz ki, gələcəkdə də oxşar tədbirlər keçirəcəyik.
PHP 5.2.6-da Təhlükəsizlik Təkmilləşdirmələri və Düzəlişləri:
- Andrey Niqmatulin tərəfindən müəyyən edilmiş FastCGI SAPI-də mümkün yığın buferinin daşması düzəldildi.
- Maksymilian Aciemowicz tərəfindən müəyyən edilmiş printf()-də sabit tam daşqın.
- Rayan Permeh tərəfindən müəyyən edilmiş CVE-2008-0599-da təfərrüatları verilmiş sabit təhlükəsizlik problemi.
- Maksymilian Arciemowicz tərəfindən müəyyən edilmiş cURL-də təhlükəsiz_rejim keçidi düzəldildi.
- Stefan Esser tərəfindən müəyyən edilmiş escapeshellcmd() daxilində natamam çoxbayt simvolları düzgün ünvanlayın.
- Paketli PCRE 7.6 versiyasına təkmilləşdi
İnternet Arxivi artıq təklif edir 15,000,000 pulsuz yüklənə bilən kitablar və mətnlər. Pulsuz sayt hesabı olan hər kəs tərəfindən borc götürülə bilən kolleksiya da var.
Alternativ olaraq, bizim portativ Stolüstü Skanerimiz də alına və kitabxanalar və arxivlərdə yerində istifadə oluna bilər. TT Scribe haqqında daha çox oxumaq üçün ziyarət edin.
2005-ci ildən bəri İnternet Arxivi artıq onlarla əməkdaşlıq edir və rəqəmsal kolleksiyalar yaradır 1100 Kitabxana Müəssisələri və digər məzmun təminatçıları. Tərəfdaşlıqlara aşağıdakılar daxildir: , the və . Bu kolleksiyalar müxtəlif mediatiplərdən rəqəmsallaşdırılıb: , və geniş çeşiddə. Əhəmiyyətli töhfələr Şimali Amerikadakı (və Kitabxanalar) və 184-dən çox dili təmsil edən tərəfdaşlardan gəldi.
İnternet Arxivi qlobal ictimaiyyətimizi fiziki əşyalara töhfə verməyə, eləcə də rəqəmsal materialları birbaşa İnternet Arxivinə yükləməyə təşviq edir. İnternet Arxivinə əlavə etmək istədiyiniz rəqəmsal elementləriniz varsa, lütfən, yükləyici interfeysindən istifadə edərək yeni element edin. Materialın necə istifadə oluna biləcəyini bildirmək üçün xüsusi Creative Commons lisenziyasını tətbiq etmək üçün bura klikləyin.
Fiziki kitab və ya əşyaların bağışlanması üçün əlaqə saxlayın info@sayt
Oxumaq, yükləmək, çap etmək və həzz almaq pulsuzdur. Bəzilərinin toplu təkrar istifadə və kommersiya istifadəsinə məhdudiyyətləri var, lütfən, kolleksiyaya və ya kitabın sponsoruna baxın. Bu mətnlərə demək olar ki, məhdudiyyətsiz girişi təmin etməklə biz ümid edirik ki, əvvəllər onlardan istifadə etməyən insanlar tərəfindən yeni kontekstlərdə mətnlərdən geniş istifadəni təşviq edəcəyik.
Veb sayt mənbələrini serverdən tez yükləmək lazım olduqda, hətta nisbətən sürətli SSH tuneli də lazımi sürəti təmin etmir. Və çox, çox uzun müddət gözləmək lazımdır. Və bir çox hosting provayderləri bu girişi təmin etmir, lakin dəfələrlə yavaş olan FTP ilə kifayətlənməyə məcbur edir.
Şəxsən özüm üçün çıxış yolu müəyyən etmişəm. Kiçik bir skript serverə yüklənir və işə salınır. Müəyyən müddətdən sonra bütün mənbələrin olduğu bir arxiv alırıq. Və bir fayl, hətta qədim FTP vasitəsilə, yüz kiçik fayldan daha sürətli yüklənir.
Əvvəllər bu bloqun səhifələrində zipArchive kitabxanası var idi. Bununla belə, söhbət arxivin açılmasından gedirdi.
Əvvəlcə serverin zipArchive-i dəstəklədiyini öyrənməliyik. Bu məşhur kitabxana hosting saytlarının böyük əksəriyyətində quraşdırılıb.
Kitabxana ciddi şəkildə php və server parametrləri ilə məhdudlaşır. Böyük verilənlər bazası və foto bankları arxivləşdirilə bilməz. Mühasibat uçotu üçün köhnə yaxşı 1C proqramının əsasları belə. Belə görünür ki, onlar yalnız mətn məlumatlarını ehtiva etməlidirlər. Amma yox.
Kitabxanadan yalnız çox sayda kiçik faylı olan nisbətən kiçik saytları arxivləşdirərkən istifadə etməyi məsləhət görürəm.
Kitabxananın işləmək üçün əlçatan olub olmadığını yoxlayaq
Əgər (!extension_loaded("zip")) ( false qaytarın; )
Hər şey qaydasındadırsa, skript daha da icra etməyə davam edəcək.
Bu cür yoxlamalar üçün kiçik bir oftopik. İç içə mötərizələrlə böyük strukturlardan qaçaraq yoxlamalar bu şəkildə aparılmalıdır. Bu şəkildə kod daha atomik və debug etmək daha asan olacaq. Müqayisə et
If(a==b)( if(c==d)( if(e==f)( exo "Bütün şərtlər yerinə yetirilib"; )başqa əks-səda "e"<>f"; )else echo "c<>d"; )else echo "a<>b;
və bu kod
Əgər(a!=b) çıxın("a<>b); if(c!=d) exit("c<>d); if(e!=f) exit("e<>f); echo "Bütün şərtlər yerinə yetirildi";
Kod daha gözəldir və nəhəng daxili strukturlara çevrilmir.
Mövzudan kənar olduğum üçün üzr istəyirəm, amma bu tapıntını paylaşmaq istədim.
İndi obyekt və arxiv yaradaq.
$zip = yeni ZipArxiv(); əgər (!$zip->open($destination, ZIPARCHIVE::CREATE)) ( false qaytarın; )
burada $destination arxivə gedən tam yoldur. Arxiv artıq yaradılıbsa, fayllar ona əlavə olunacaq.
$zip->addEmptyDir(str_replace($source . "/", "", $fayl . "/"));
burada $mənbə bizim kateqoriyaya gedən tam yoldur (bizim bunu ilkin olaraq arxivlədik), $file cari qovluğa gedən tam yoldur. Bu, arxivdə tam yolların yox, yalnız nisbi yolların olması üçün edilir.
Fayl əlavə etmək oxşar şəkildə işləyir, lakin əvvəlcə onu sətirdə oxumaq lazımdır.
$zip->addFromString(str_replace($source . "/", "", $fayl), file_get_contents($file));
Sonda arxivi bağlamaq lazımdır.
$zip->close();
Qovluqdakı bütün faylları və alt qovluqları necə keçəcəyini izah etməyə ehtiyac olduğunu düşünmürəm. Google kimi bir şey php-də qovluqların rekursiv keçidi
Bu seçim mənə uyğun gəldi
Funksiya Zip($source, $destination)( if (!extension_loaded("zip") || !file_exists($source)) ( return false; ) $zip = new ZipArchive(); if (!$zip->open() $destination, ZIPARCHIVE::CREATE)) ( qaytarmaq false; ) $source = str_replace("\\", "/", realpath($source) if (is_dir($source) === true)( $fayllar = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST foreach ($fayllar $file)( $file = str_replace("\\", "/", $file); // İqnor "." və ".." qovluqları if(in_array(substr($file, strrpos($file, "/")+1), array(".", ".."))) $file = realpath($file ); $file = str_replace("\\", "/", $file if (is_dir($file) === true)( $zip->addEmptyDir(str_replace($source . "/", ""); , $file "/")); fayl)); ) ) )else if (is_file($source) === true)( $zip->addFromString(basename($source), file_get_contents($source)); ) return $zip->close(); )