Belirli zamanlarda çalıştırmak için PHP komut dosyası

8 Cevap php

Bir php script günün belirli saatlerinde bazı html çalıştırmak için basit bir yolu var mı?

Örneğin benim ana sayfada bir başlık ve ben bu durumda bir iframe içinde, sağ başlığının altında bir şey eklemek mümkün olmak istiyorum belirli zamanlarda var.

Herkesin sözü cron işleri biliyorum ama nasıl olur ki bu işi? Ayrıca bir alternatif var mı? Tüm hosting üzerindeki mevcut değil

8 Cevap

Cron ve scheudled iş fikri aslında yapmaya çalışıyoruz ne sayacı çalıştırmak gibi görünüyor. Eğer sadece belirli zamanlarda gösterilecek bir şey (bu durumda bir iframe) istiyorsanız, sadece her isteği sırasında sunucu zaman kontrol ve belirli bir süre içinde iseniz bunu göstermek için tercih edebilirsiniz.

Böyle bir şey requst yapıldığı tam şu anda zaman kontrol, daha fazla ayrıntı ile, bir cron işi olarak aynı etkiyi yaratacaktır.

<!-- Your Header here -->

<?php
$hour = date('G'); // 0 .. 23

// Show our iframe between 9am and 5pm
if ($hour >= 9 && $hour <= 17) { ?>
  <iframe .... ></iframe>
<?php } ?>

Sen IFrame günde birden çok kez göstermek için koşullu deyimi genişletmek, ya da iframe ekranı yönetmek için kullanmak arıyorsanız harici ne durumda script kontrol olabilir.

Update: Additional times or types of comparisons could be specified via something like

<?php 
$hour = date('G');
$day  = date('N'); // 1..7 for Monday to Sunday

if (($hour >= 5  && $hour <= 7)  // 5am - 7am
||  ($hour >= 10 && $hour <= 12) // 10am - 12 noon
||  ($hour >= 15 && $hour <= 19) // 3pm - 7pm
||  ($day == 5)                  // Friday
) { ?>
  <iframe...></iframe>
<?php } ?>

Periyodik bir sunucu tarafı cron / görev zamanlayıcı işi ile başlığın altında gelen iframe ekleme / kaldırma fikri çok daha karmaşık basit şartlı her istek sırasında görüntülemeden daha.

Böyle bir periyodik oluşturulan rapor olarak çalıştırmanız gerekir belirli bir görevi, var olsa bile, sonuçları gösteren gerçek işi genellikle periyodik göreve üzerine düşmez. Bu iframe gösteren sorumlu PHP komut dosyası hala istek göstermek için herhangi bir yeni içerik için yapılır anda veritabanını sorgulamak ve bulursa yerine periyodik görev nasılsa bir iframe eklemek için komut dosyasını değiştirerek daha, görüntülemek olacaktır.

Linux üzerinde çalışan varsa, o zaman bir cron işi olabilir.

Windows üzerinde ise, o zaman Görev Zamanlayıcısı kullanmak.

Eğer barındırılan bir ortamda iseniz, ya izin olup olmadığını görmek için kontrol etmeniz gerekir.

cron on UNIX, launchd on OS X, and Task Scheduler Windows platformlarında.

Eğer sunucu üzerinde cron işleri veya zamanlanmış görevler erişiminiz yoksa, belirttiğiniz aralıklarla komut vurmak gibi http://pingability.com/ olarak çevrimiçi servislerini kullanabilirsiniz. Bu mükemmel değil, ancak komut belirli bir süre içinde birden fazla kez çalıştırmak almaz emin olur gizli anahtarı ve bir çeşit kod inşa edebilirsiniz. Biraz hacky görünebilir, ama ben günlük e-postalar göndermek için canlı sistemlerde kullandım ve şimdi bir yıl için güzel çalışıyor.

Unix sistemleri cron en iyi bahistir.

A.G. görmek, bir cron işi veya benzeri bir şey kullanın http://stackoverflow.com/questions/1268044/cron-jobs-or-php-scheduler

Eğer bir cron işi olarak görev zamanlayabilirsiniz.

Otomatik olarak tanımlanmış aralıklarda komut dosyasını çalıştırmak için crontab bir PHP komut dosyası ekleyebilirsiniz. Komut satırından, crontab -e sizin crontab girdisi eklemek için girin.