Sitem yüzlerce static sayfadan oluşmakta bunlarda description tagı kullanmamıştım. Şimdi yüzlerce sayfaya tek tek açıklama girmek çok zor geliyor bunu PHP ile içerikten bir bölüm alarak description tagı'na eklemek istiyorum bunu nasıl yapabilirim?
<meta name="description" content="<?php ?>" />
<div class="content">
<p>The laws of England and Wales govern this agreement, without giving effect to conflict of laws provisions. The courts of England and Wales have exclusive jurisdiction over all disputes relating to or arising from the execution or performance of this agreement unless Agario wishes to initiate legal proceedings in your home legal district. In all judicial actions, arbitrations, or disputes resolution methods, the parties waive any punitive damages.</p></div>
PHP ile Static sayfada description tagı'na içerikten bir bölümü nasıl çekerim.
14
●735
- 19-09-2017, 16:01:40php server side bir dil olduğu için, sayfa yüklendikten sonra php ile işlem yapamazsınız. Yani sayfalar statik ise bu statik sayfalara sayfa yüklendikten sonra php ile müdahale edemezsiniz. Yani tabii ki edersiniz ama işin içine mutlaka javascript sokmak zorundasınız. Zaten her sayfaya php kodu ekleyene kadar desc leri silmek daha doğru olurdu.
Şu da var, js ile de yapabiliriz ama js dom yüklendikten sonra çalışır, eski desc i silip yenisini eklediğimizde ilk var olan önce yüklenecek sonra değişeceğinden SEO'da sorun olabilir, botlar milisaniyeler içerisinde sayfaya girip çıkana kadar desc değişmemiş olabilir.
Burada yapılması gereken şudur; php ile bir script yazılarak ana dizine atılmalıdır. Bu script tüm html sayfaları indexleyip, bunları tek tek açıp desc meta tagı
içerisindeki yazıyı silip yerine içerikten bir bölüm alıp yapıştırdıktan sonra tekrar sayfayı kaydetmesi ile en kolay çözülür ama bu da zahmetli bir iş, tüm sayfalar aynı özenle yazılmış mı emin olmak lazım; mesela bazı yerlerde tek tırnak bazı yerlerde çift tırnak falan kullanılmamış olması lazım yoksa regex kullanırken bazı sorunlar ortaya çıkabilir. Yada tüm ihtimalleri ele alıp ona göre bir script yazmak gerekir.
En kolay ve SEO açısından sağlıklı çözüm en sondakidir.
Bol şans. - 19-09-2017, 19:28:04Tabikide yapılabilir. Arkadaşın dediğine katılmıyorum. Js ise en son çare olarak kullanmayı tercih ederim.
Php'de o sayfayı okuyup arasındaki istediğiniz veriye ulaşabilir sonrasında meta olarak yazabilirsiniz. Hatta ufak bir ücrete sizin için hazırlayabilirim. - 20-09-2017, 00:40:37Hocam fikir vermesi açısından mantığı biraz anlatabilir misiniz? Ben yanılıyor da olabilirim.Mikroscript adlı üyeden alıntı: mesajı görüntüle
- 20-09-2017, 01:17:24Bu arkadaşın bahsettiği substr fonksiyonu sizin için en ideal çözümdür.DWather adlı üyeden alıntı: mesajı görüntüle
- 20-09-2017, 09:48:42DWather adlı üyeden alıntı: mesajı görüntüleArkadaşlar, işlemin doğru olduğuna katılıyorum, ancak bu işlemleri tüm sayfalara girip yapması gerekiyor değil mi?Ofisimo adlı üyeden alıntı: mesajı görüntüle
Tüm sayfaları tek tek açıp bu işlemi yaptıktan sonra bir anlamı kalmıyor bence, bu yöntemle tüm sayfaları açtıktan sonra manuel olarak yapmaktan belki %30 kadar daha az vakit kaybedecektir. Bence düşük bir oran. Programcılığın amacı bilgisayarın yapabileceği işleri insanlara yaptırmamak olduğuna göre tüm sayfalara dokunmadan hatta hiçbir sayfaya dokunmadan bu işlemi yapabilecek bir çözüm bulmak daha doğru olurdu diye düşünüyorum. Eğer yanılıyorsam lütfen düzeltin.
Tabii ki bir çok çözümü olabilir bu işlemin, ben doğru metodu sorguluyorum. Bence hiçbir sayfaya dokunmadan tek bir scriptle bu iş halledilmelidir. Buna göre bir çözüm üretelim ne dersiniz? - 20-09-2017, 10:43:58Tekrar selam,
Static sayfalar birer .html uzantılı dosyalar mı? Yine bu kod parçacığını kullanacaksın sonuç olarak. Eğer html uzantılı dosyalar ise bu dosyalar şu şekilde yapabilirsin bunu izlemen gereken adımlar da şunlar:
1. glob fonksiyonnu ile bu dosyaların bulunduğu dizinden .html uzantılı dosyaların dizisini al.
2. file_get_contents yardımıyla bu dosyaları aç ve bir preg_match_all olayına girerek content div'inin içinden <p> etiketlerini topla
3. yukarıda verdiğim substr olayından geçir ve bir kısmını al,
4. preg_match ile bir <meta name="description" content="{DESCRIPTION}"> elementi var mı kontrol et
4.1. Varsa:
4.1.1. preg_replace yardımıyla file_get_contents'den gelen html kaynağında bu description'a substr'den aldığın 200 karakter metni yapıştır
4.2. Yoksa:
4.2.1. yine preg_replace yardımıyla file_get_contents'den gelen html kaynağında bu description'a substr'den aldığın 200 karakter metni preg_replace kullanarak <title></title>'den sonra yapıştır
5. file_put_contents ile bu kaynağı dosyasına yaz.
Kolay gelsin. - 20-09-2017, 11:03:02Bence arkadaşa bu daha çok faydalı olacak.DWather adlı üyeden alıntı: mesajı görüntüle
Eline sağlık.