Я столкнулся с этой проблемой с Календарем Google . Я хотел стилизовать его на более темном фоне и изменить шрифт.
К счастью, URL из встраиваемого кода не имеет ограничений на прямой доступ, поэтому с помощью функции PHP file_get_contents
можно получить
весь контент со страницы. Вместо того, чтобы вызывать URL-адрес Google, можно вызвать php-файл, расположенный на вашем сервере, например. google.php
, который будет содержать оригинальный контент с изменениями:
$content = file_get_contents('https://www.google.com/calendar/embed?src=%23contacts%40group.v.calendar.google.com&ctz=America/Montreal');
Добавление пути к вашей таблице стилей:
$content = str_replace('</head>','<link rel="stylesheet" href="http://www.yourwebsiteurl.com/google.css" /></head>', $content);
(Это сделает вашу таблицу стилей последней перед тэгом head
.)
Укажите базовый URL-адрес из исходного URL-адреса в случае, если css и js называются относительно:
$content = str_replace('</title>','</title><base href="https://www.google.com/calendar/" />', $content);
Окончательный файл google.php
должен выглядеть следующим образом:
<?php
$content = file_get_contents('https://www.google.com/calendar/embed?src=%23contacts%40group.v.calendar.google.com&ctz=America/Montreal');
$content = str_replace('</title>','</title><base href="https://www.google.com/calendar/" />', $content);
$content = str_replace('</head>','<link rel="stylesheet" href="http://www.yourwebsiteurl.com/google.css" /></head>', $content);
echo $content;
Затем вы меняете код встраивания iframe
на:
<iframe src="http://www.yourwebsiteurl.com/google.php" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
Удачи!