本文整理匯總了PHP中log::warn方法的典型用法代碼示例。如果您正苦於以下問題:PHP log::warn方法的具體用法?PHP log::warn怎麽用?PHP log::warn使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類log
的用法示例。
在下文中一共展示了log::warn方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: get_fields
/**
* 根據配置提取HTML代碼塊中的字段
*
* @param mixed $confs
* @param mixed $html
* @param mixed $page
* @return void
* @author seatle <seatle@foxmail.com>
* @created time :2016-09-23 17:13
*/
public function get_fields($confs, $html, $url, $page)
{
$fields = array();
foreach ($confs as $conf) {
// 當前field抽取到的內容是否是有多項
$repeated = isset($conf['repeated']) && $conf['repeated'] ? true : false;
// 當前field抽取到的內容是否必須有值
$required = isset($conf['required']) && $conf['required'] ? true : false;
if (empty($conf['name'])) {
log::error("The field name is null, please check your \"fields\" and add the name of the field\n");
exit;
}
$values = array();
// 如果定義抽取規則
if (!empty($conf['selector'])) {
// 如果這個field是上一個field的附帶連接
if (isset($conf['source_type']) && $conf['source_type'] == 'attached_url') {
// 取出上個field的內容作為連接,內容分頁是不進隊列直接下載網頁的
if (!empty($fields[$conf['attached_url']])) {
$collect_url = $this->get_complete_url($url, $fields[$conf['attached_url']]);
log::info(date("H:i:s") . " Find attached content page: {$url}");
$html = $this->request_url($collect_url);
// 在一個attached_url對應的網頁下載完成之後調用. 主要用來對下載的網頁進行處理.
if ($this->on_attached_download_page) {
$return = call_user_func($this->on_attached_download_page, $html, $this);
if (isset($return)) {
$html = $return;
}
}
// 請求獲取完分頁數據後把連接刪除了
unset($fields[$conf['attached_url']]);
}
}
// 沒有設置抽取規則的類型 或者 設置為 xpath
if (!isset($conf['selector_type']) || $conf['selector_type'] == 'xpath') {
// 返回值一定是多項的
$values = $this->get_fields_xpath($html, $conf['selector'], $conf['name']);
} elseif ($conf['selector_type'] == 'regex') {
$values = $this->get_fields_regex($html, $conf['selector'], $conf['name']);
}
// field不為空而且存在子配置
if (!empty($values) && !empty($conf['children'])) {
$child_values = array();
// 父項抽取到的html作為子項的提取內容
foreach ($values as $html) {
// 遞歸調用本方法,所以多少子項目都支持
$child_value = $this->get_fields($conf['children'], $url, $html, $page);
if (!empty($child_value)) {
$child_values[] = $child_value;
}
}
// 有子項就存子項的數組,沒有就存HTML代碼塊
if (!empty($child_values)) {
$values = $child_values;
}
}
}
if (empty($values)) {
// 如果值為空而且值設置為必須項,跳出foreach循環
if ($required) {
break;
}
// 避免內容分頁時attached_url拚接時候string + array了
$fields[$conf['name']] = '';
//$fields[$conf['name']] = array();
} else {
// 不重複抽取則隻取第一個元素
$fields[$conf['name']] = $repeated ? $values : $values[0];
}
}
if (!empty($fields)) {
foreach ($fields as $fieldname => $data) {
$pattern = "/<img.*?src=[\\'|\"](.*?(?:[\\.gif|\\.jpg|\\.jpeg|\\.png]))[\\'|\"].*?[\\/]?>/i";
// 在抽取到field內容之後調用, 對其中包含的img標簽進行回調處理
if ($this->on_handle_img && preg_match($pattern, $data)) {
$return = call_user_func($this->on_handle_img, $fieldname, $data);
if (!isset($return)) {
log::warn("on_handle_img function return value can't be empty\n");
} else {
// 有數據才會執行 on_handle_img 方法,所以這裏不要被替換沒了
$data = $return;
}
}
// 當一個field的內容被抽取到後進行的回調, 在此回調中可以對網頁中抽取的內容作進一步處理
if ($this->on_extract_field) {
$return = call_user_func($this->on_extract_field, $fieldname, $data, $page, self::$taskid);
if (!isset($return)) {
log::warn("on_extract_field function return value can't be empty\n");
} else {
// 有數據才會執行 on_extract_field 方法,所以這裏不要被替換沒了
//.........這裏部分代碼省略.........
示例2: post
/**
* @param $name 要獲取的POST參數名稱
* @param bool $required 該參數是否是必須的
* @param string $defaultVal 如果該參數不是必須的,且沒有傳遞的情況下期望的默認值
* @return null|string 返回參數值,或者直接中斷http請求向客戶端返回錯誤信息
*/
protected function post($name, $required = true, $defaultVal = 'val')
{
$result = null;
if (!empty($_POST)) {
$result = $_POST[$name];
} else {
if ($required) {
$str = '缺少必要的POST參數' . $name . ' | ' . var_dump($_POST);
log::warn($str);
$this->ret_error($str);
} else {
$result = $defaultVal;
}
}
return $result;
}