С помощью file_get_contents получаю заголовки с сайтов
function page_title($url) {
$fp = file_get_contents($url);
if (!$fp)
return null;
$res = preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches);
if (!$res)
return null;
// Clean up title: remove EOL and excessive whitespace.
$title = preg_replace('/\s+/', ' ', $title_matches[1]);
$title = trim($title);
return $title;
}
Нередко попадаются сайты без заголовков, у меня имеются дефолтные заголовки которые я могу сохранить в базу так 'my_title' => $item->my_title,
$db->add(array_merge($item->only(['title', 'wareUrl', 'description', 'user', 'user_id', 'youtube', 'activatedate']), [
'id' => (4 * 10000000) + $item->id,
'item_id' => $item->id,
'type' => 4,
'user_id' => $item->user['id'],
'youtube' => video_youtube(''.$item->wareUrl.''),
'title' => page_title(''.$item->wareUrl.''),
// 'my_title' => $item->my_title,
'activatedate' => $item->activatedate,
'time' => microtime(true)
]));
Помогите создать конструкцию } else {
, чтобы в случае отсутствия заголовка получаемого через file_get_contents, в базу заносился дефолтный заголовок 'my_title' => $item->my_title,
Пробовал прописать if
внутри $db->add(array_merge($item->only(['title', 'wareUrl', 'description', 'user', 'user_id', 'youtube', 'activatedate']), [
получаю ошибку.
'title' => page_title(''.$item->wareUrl.'') ? : $item->my_title, // $item->my_title дефолтный тайтл
только в page_title() бы делать return false; вместо return null; и в конце этой функции сделать проверку на strlen например:
return strlen($title)>0 ? $title : false;
Ну или можно только в функции page_title(); заменить все return null; на return $item->my_title и в конце проверка return strlen($title)>0 ? $title : $item->my_title; только посмотри на область видимости $item, возможно надо добавить внутри функции global $item;
$title = 'defaultTitle';
if (preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches)) {
$title = preg_replace('/\s+/', ' ', $title_matches[1]);
$title = trim($title);
}
return $title;
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть функция в обработчике, которая должна вернуть массивА в Ajax мне нужно этот массив получить
1) Насколько я знаю, static_cast<> создает копию переменной но уже в другом форматеВот код