PDA

View Full Version : پیدا کردن یک عبارت در فایل متنی



PHP2013
دوشنبه 13 آذر 1391, 21:11 عصر
سلام
یک برنامه داریم که هربار اجرا میشه log تولید میکنه و بعد از بسته شدن هم پاکش میکنه(هر نوع فایل متنی میتونه لاگ تولید کنه مثل xml یا txt یا هر نوع فایل متنی دیگه ای)
اما بعضی اوقات برنامه با مشکل مواجه میشه و تویه لاگ مینویسه down حالا من میخوام چند خط php بهم یاد بدید:خجالت: که بره و اون فایل را جستجو کنه(مثلا با کرون جاب بزاریمش رویه هر دقیقه) و اگه تویه فایل متنی(همون لاگه) عبارت down را پیدا کرد یک سری کد دیگه php را اجرا کنه یا یک فایل php دیگه رویه همین سرور را فراخوانی کنه (get کنه)
ضمنا بگم لاگ برنامه در مسیر htdocs وب سرور هست یعنی دقیقا رویه اینجا mysite.com/log.txt
ممنون میشم کمک کنید یاد بگیرم:بوس:

MMSHFE
دوشنبه 13 آذر 1391, 21:53 عصر
خوب شما باید با کد زیر ابتدا محتوای فایل رو بخونید و بعد بررسیش کنید ببینید کلمه down توش هست یا نه و اگه بود، پردازشهای لازم رو انجام بدین:


<?php
$contents = file_get_contents('http://mysite.com/log.txt');
if(strpos($contents, 'down') !== false) {
// do your process here
}
?>

MMSHFE
دوشنبه 13 آذر 1391, 21:57 عصر
البته اگه file_get_contents روی هاست شما اجازه خوندن فایلهای سایتهای دیگه رو نداشته باشه پیغام خطا میگیرین (باید توی تنظیمات PHP سرورتون allow_url_fopen = On باشه) اگه دسترسی نداشته باشین و پشتیبانی هاست هم قبول نکنه براتون فعال کنه، باید از cURL استفاده کنید:


<?php
ob_start();
$ch = curl_init('http://mysite.com/log.txt');
curl_exec($ch);
$contents = ob_get_contents();
ob_end_clean();
if(strpos($contents, 'down') !== false) {
// do your process here
}
?>