Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt zbyt mocno obciazajacy procesor ...
Forum PHP.pl > Forum > PHP
luk4
Napisalem sobie swego czasu taki skrypt (sprawdza poczte i jezeli jest
nowa wiadomosc to wysyla sms'a na komorke ERY z informacja
od kogo przyszla wiadomosc i jaki ma temat) umiescilem go na serwerze i
bez zadnych problemow dzialal sobie spokojnie przez 2-3 tygodnie uruchamiany
CYKLICZNIE przez Crona co 8 minut ...
Od jakiegos czasu dostaje informacje od admina ze ten wlasnie skrypt zbyt
mocno wykorzystuje moc obliczeniowa procesora ...
I tu pojawia sie moja prosba do was moglibyscie zerknac czy da sie
cos jeszcze w tym prostym skrypcie zooptymalizowac ?


Z gory dzieki za pomoc...


  1. <?php
  2. function open_https_url($url,$refer = "",$usecookie = false)
  3.  {
  4.  if ($usecookie) {
  5. if (file_exists($usecookie)) {
  6. if (!is_writable($usecookie)) {
  7. return "Can't write to $usecookie cookie file, change file
  8. permission to 777 or remove read only for windows.";
  9. }
  10. } else {
  11. $usecookie = "sms3.txt";
  12. if (!is_writable($usecookie)) {
  13.  
  14. return "Can't write to $usecookie cookie file, change file
  15. permission to 777 or remove read only for windows.";
  16. }
  17. }
  18. }
  19.  
  20. $ch = curl_init();
  21. curl_setopt($ch, CURLOPT_URL, $url);
  22. // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  23. // curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
  24. $host ="www.eraomnix.pl";
  25. $headers = array("Host: $host");
  26. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  27. curl_setopt($ch, CURLOPT_HEADER, 1);
  28. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
  29. if ($usecookie) {
  30. curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie);
  31. curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie);
  32. }
  33. if ($refer != "") {
  34. curl_setopt($ch, CURLOPT_REFERER, $refer );
  35. }
  36. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  37. $result =curl_exec ($ch);
  38. curl_close ($ch);
  39. return $result;
  40. }
  41.  
  42. ///////////////////////////////////////////////
  43. ///////// Poczatek//////////////////////////
  44. /////////////////////////////////////////////
  45.  
  46. //Login do konta i haslo
  47. $login="";
  48. $pass="";
  49.  
  50. /// Polaczenie
  51.  
  52. $mbox = imap_open("{serwer:143}", $login, $pass);
  53.  
  54. if ($mbox)
  55. {
  56.  
  57. $status = imap_status($mbox, "{serwer:143}INBOX", SA_ALL);
  58. if ($status) {
  59. echo "Messages: " . $status->messages . "<br />\n";
  60. echo "Recent: " . $status->recent . "<br />\n";
  61. echo "Unseen: " . $status->unseen . "<br />\n";
  62. echo "UIDnext: " . $status->uidnext . "<br />\n";
  63. echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
  64. } else {
  65. echo "imap_status failed: " . imap_last_error() . "\n";
  66. }
  67.  
  68.  
  69. // Sprawdza czy jest nowa wiadomosc
  70.  
  71. if (($status->recent)>=1) 
  72. {
  73. $liczbawiad=$status->messages;
  74. $number=$liczbawiad-1;
  75. $temat=$headers[$number];
  76.  
  77. // pobieranie naglowka wiadomosci czyli informacji od kogo jest wiadomosc
  78. // i jaki ma temat
  79.  
  80. $naglowek = imap_headerinfo($mbox, $liczbawiad, 80, 80);
  81.  
  82. $lebek=$naglowek->from[0]->mailbox;
  83. $hoscik=$naglowek->from[0]->host;
  84. $temat=$naglowek->fetchsubject ;
  85. $text="Serwer: masz nowa wiadomosc od $lebek@$hoscik Temat : $temat";
  86.  
  87. //echo strlen($text);
  88. // Sprawdzanie wielkosci nie moze przekroczyc 110 takie wymagania bramki Ery...
  89.  
  90. if (strlen($text)>110) 
  91. {
  92. $luk=substr($text, 0, 110);
  93. $text=$luk;
  94. }
  95.  
  96. // Wysyla sms'a
  97.  
  98. $zmienna=open_https_url("http://www.eraomnix.pl/msg/api/do/tinker/sponsored?message=$text&number=tel&password=has&login=tel&failure=http://www.era.pl&success=http://www.eraomnix.pl&mms=false","",false);
  99.  
  100. //echo $zmienna;
  101. }
  102. } 
  103. else
  104. {
  105. echo "imap_status failed: " . imap_last_error() . "\n";
  106. }
  107.  
  108. imap_close($mbox);
  109. ?> 
hwao
Admin steka.

Normlanie strony generuja duzo wieksze obciazenie! tym bardziej ze sa wlaczane w kolo, a nie raz na 8 min.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.