У меня есть система новостной рассылки, которую я пытаюсь внедрить в сайт PHP. Сайт PHP загружает область содержимого, а также загружает скрипты в заголовок страницы. Это прекрасно работает для кода, сгенерированного для сайта, но теперь у меня есть информационный бюллетень, который я пытаюсь включить.
Первоначально я собирался использовать iFrame, но количество вызовов AJAX и jQuery делает это довольно сложным.
Так что я подумал, что мог бы использовать cURL для загрузки страницы новостной рассылки в качестве переменной. Затем я собирался использовать RegEx для захвата контента между тегами тела и размещения его в области контента. Наконец, я собирался снова использовать RegEx для поиска в голове и получения любых скриптов.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config_live_site."lib/alerts/user/update.php?email=test@test.com.au"); # URL to post to
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); # return into a variable
curl_setopt($ch, CURLOPT_HEADER, 0);
$loaded_result = curl_exec( $ch ); # run!
curl_close($ch);
// Capture the body content and place in $_content
if (preg_match('%<body>([\s\S]*)</body>%', $loaded_result, $regs)) {
$_content .= $regs[1];
} else {
$_content .= "<p>No content to display.</p>";
}
// Capture the scripts and place in the head
if (preg_match('%(<script type="text/javascript">[\s\S]*</script>)%', $loaded_result, $regs)) {
$headDetails .= $regs[0];
}
Это работает большую часть времени, но если в теле документа есть скрипт, он записывает его до последнего /script'.
Мне кажется, мой вопрос двоякий ...
A. Есть ли лучший общий подход (мой крайний срок очень короткий, поэтому это должно быть быстрое решение без слишком большого редактирования кода бюллетеня)?
B. Какой RegEx мне нужно использовать, чтобы просто захватить первый скрипт?