diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lang.php | 4 | ||||
-rw-r--r-- | test/mga8.php | 418 | ||||
-rw-r--r-- | test/news.php | 79 | ||||
-rw-r--r-- | test/sp_test.php | 496 |
4 files changed, 995 insertions, 2 deletions
diff --git a/test/lang.php b/test/lang.php index 15e0ef28c..4c0c554c3 100644 --- a/test/lang.php +++ b/test/lang.php @@ -17,7 +17,7 @@ if ($delete_feed_cache) { array_map('unlink', glob($feed_cache_patern)); foreach (glob($feed_cache_patern) as $filename) { - echo "It seems that deleting feed cache didn't work as some files listed bellow are still there!\n\n"; + echo "It seems that deleting feed cache didn't work as some files listed below are still there!\n\n"; echo "$filename, uid: " . fileowner($filename) . "\n"; } } @@ -33,7 +33,7 @@ if ($delete_nav_cache) { array_map('unlink', glob($nav_cache_patern)); foreach (glob($nav_cache_patern) as $filename) { - echo "It seems that deleting navigation cache didn't work as some files listed bellow are still there!\n\n"; + echo "It seems that deleting navigation cache didn't work as some files listed below are still there!\n\n"; echo "$filename, uid: " . fileowner($filename) . "\n"; } } diff --git a/test/mga8.php b/test/mga8.php new file mode 100644 index 000000000..f18ca80d4 --- /dev/null +++ b/test/mga8.php @@ -0,0 +1,418 @@ +<?php +/** +*/ +define('HLANG', true); +define('ALIGNMENT', 'Center'); +require '../langs.php'; +$dictionary = read_translation_file($locale, array('index', 'news', 'common_footer')); +$rtl = is_locale_rtl($locale); + +?><!DOCTYPE html> +<html <?php echo $rtl ? 'dir="rtl"' : 'dir="ltr"'?> lang="<?php echo $locale; ?>"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title><?php _g('Home of the Mageia project'); ?></title> + <meta name="description" content="<?php _g('Mageia is a community-based Linux distribution, for desktop & server.'); ?>"> + <meta name="keywords" content="<?php _g('linux, mageia, free software, operating system, computer, laptop, desktop, server, headless, device, mobile, mandriva, mandrake'); ?>"> + <link type="text/plain" rel="author" href="/humans.txt"> + <?php + foreach ($langs as $l => $name) + if ($l != $locale) + echo sprintf('<link rel="alternate" hreflang="%s" href="//www.mageia.org/%s/">', $l, $l); + ?> + <link rel="alternate" type="application/rss+xml" title="<?php _g('Mageia Blog (English)'); ?>" href="<?php _g('https://blog.mageia.org/en/?feed=rss'); ?>"> + <?php require '../analytics.php'; ?> + <?php echo common_header(); ?> + <style> + + hr { display: none; } + ol, ul { margin: 0; padding: 0; list-style: none; } + h1, h2 { font-size: 3rem; margin-top: 0; color: #fff !important; } + #b1 { color: #fff !important; } + + a[hreflang]:after { color:#d0d0ff; font-style:italic; content: "\A0["attr(hreflang)"]"; } + + body {background: #1c5f89;} + #down {background: #ffffff;} + + #master { + padding: 2em; + border: 1px solid red; + margin: 2em; + display: none; + } + + #up, #down { margin: 0; padding: 0; } + + #up { + padding-bottom: 0px; + color: #fff; + text-shadow: 0 0 1px #333; + background: #1c5f89; + /* + background: -webkit-radial-gradient(20% 350px, circle cover, #3494D3 0%, #2383C2 50%); + background: -moz-radial-gradient(26% 370px, circle cover, #3494D3 0%, #2383C2 50%); + background: -o-radial-gradient(20% 350px, circle cover, #3494D3 0%, #2383C2 50%); + background: radial-gradient(20% 350px, circle cover, #3494D3 0%, #2383C2 50%); + */ + } + + #up .container { + padding-bottom: 40px; + } + + ul#dl li { margin-bottom: 14px; } + #dl-btn { + display: block; + color: #000; + text-decoration: none; + width: 280px; + background: #E8EBEE; + padding: 20px 20px 15px 20px; + border-radius: 4px; + text-shadow: none; + box-shadow: 0 0 1px #333; + /* + background: #ff6020; + background: -webkit-linear-gradient(top, #ff6600 0%, orange 100%); + background: -moz-linear-gradient(top, #ff3000 0%, orange 100%); + background: -o-linear-gradient(top, #ff3000 0%, orange 100%); + background: linear-gradient(top, #ff3000 0%, orange 100%); + /**/ + } + #dl-btn-mageia { + width: 204px; + height: 82px; + display: block; + color: transparent; + margin-bottom: 10px; + } + span.dl-btn { + display: block; + } + span.dl-btn span.low { + color: #777; + } + p.dl-info { + padding: 0 20px; + font-size: 85%; + } + p.dl-info a { + color: #fff; + text-shadow: none; + text-decoration: none; + } + .dl-btn-other { + display: block; + width: 280px; + padding: 10px 20px 10px 20px; + background: rgba(255,255,255, 0.15); + border-radius: 4px; + color: #ddeeff; + text-shadow: none; + text-decoration: none; + font-size: 85%; + } + .dl-btn-other:hover { + background: rgba(255,255,255, 0.3); + color: #fff; + } + #dl-btn:hover { box-shadow: 0 0 10px rgba(255,255,255,1); } + #dl-btn:active { border-radius: 0; } + + #fnotes { + text-align: center; + font: 85%/1.2 Verdana,Arial,sans-serif; + color: #f0f0f0; + } + #fnotes a { color: #aaa; text-decoration: none; } + .free-dl { color: green; font-weight: bold; } + + #newslist { + display: block; + padding: 5px 10px; + margin: 0px 70px; + background: rgba(255,255,255, 0.1); + border-radius: 4px; + color: #ddeeff; + text-shadow: none; + font-size: 120%; + } + #newslist a { + color: #ddeeff; + text-decoration: none; + } + #newslist a:hover { color: #ffffff; } + + + /* Landscape phones and down */ + @media (max-width: 480px) {} + + /* Landscape phone to portrait tablet */ + @media (max-width: 768px) { + #newslist { margin: 0px; } + } + + /* Portrait tablet to landscape and desktop */ + @media (max-width: 1000px) { + h2 { margin: 0 0 .3em; line-height: 1.2; font-size: 200%; } + + ul#p { font-size: 90%; list-style: circle; padding: 0 0 0 2em; margin: 0; } + #up { padding-bottom: 0; } + #up > .container { padding: 1em; } + #b1 { margin: 0; padding: 0 0 1em 0; } + #navb li { margin: 1em 0 0 1em; float: left; } + #navb li a { + display: block; + width: 222px; + padding: 10px 20px 10px 20px; + background: rgba(50,160,200, 0.1); + border-radius: 4px; + color: #68a; + text-shadow: none; + text-decoration: none; + font-size: 75%; + } + .dl-btn-other:hover { + background: rgba(255,255,255, 0.2); + color: #fff; + } + #fnotes { clear: both; padding: 2em; text-align: left; } + } + + @media (min-width: 1000px) { + h2 { margin-bottom: 0.3em; } + ul#p li:before { content: " > "; } + #up { + background: url(/g/8/background.png) no-repeat center; + background-size: cover + } + #b1 { padding: 33px 70px 70px 70px; } + #b2 { padding-left: 70px; padding-right: 70px; } + + #navb { + padding: 0; + margin: 0 auto; + display: table; + border-radius: 4px; + margin-bottom: 20px; + } + #navb li { + display: table-cell; + padding: 0; + border-right: 1px solid #f0f0f0; + } + #navb li:last-child { border: none; } + #navb a { + text-decoration: none; + padding: 20px 1em 20px 1em; + display: block; + min-width: 80px; + text-align: center; + color: #444; + } + #navb a:hover { + color: #2383C2; + } + } + @media (min-width: 1200px) {} + +@keyframes float { + 0% { + transform: translateY(0em); + } + 100% { + transform: translateY(2em); + } +} +@keyframes fade-in { + 0% { + opacity: 0; + } + 60% { + opacity: 0.10; + } + 100% { + opacity: 1; + } +} + +@keyframes fade-out { + 0%,70% { + opacity: 1; + } + 90% { + opacity: 0.1; + } + 100% { + opacity: 0; + } +} + +@keyframes slide-out-blurred-top { + 0% { + transform: translateY(0) scaleY(1) scaleX(1); + transform-origin: 50% 0%; + filter: blur(0); + opacity: 1; + } + 100% { + transform: translateY(-1000px) scaleY(2) scaleX(1); + transform-origin: 50% 0%; + filter: blur(5px); + opacity: 0; + } +} + +svg .bubble { + opacity: 1; + animation: fade-in 1.4s infinite, float 1.4s ease infinite reverse ; + /*animation: slide-out-blurred-top 0.45s cubic-bezier(1,0.03,1,.0) infinite;*/ +} + +svg .bubble:nth-child(1) { + animation-delay: 0.2s; +} +svg .bubble:nth-child(2) { + animation-delay: 0.4s; +} +svg .bubble:nth-child(3) { + animation-delay: 0.6s; +} +svg .bubble:nth-child(4) { + animation-delay: 0.8s; +} +svg .bubble:nth-child(5) { + animation-delay: 1s; +} + +svg .text { + opacity: 1; + animation: fade-out 8s ease infinite ; +} + +svg .text:nth-child(1) { + animation-delay: 0.2s; +} +svg .text:nth-child(2) { + animation-delay: 0.4s; +} +svg .text:nth-child(3) { + animation-delay: 0.6s; +} +svg .text:nth-child(4) { + animation-delay: 0.8s; +} +svg .text:nth-child(5) { + animation-delay: 1s; +} +svg .text:nth-child(6) { + animation-delay: 1.2s; +} +svg .text:nth-child(7) { + animation-delay: 1.4s; +} +svg .text:nth-child(8) { + animation-delay: 1.6s; +} +svg .text:nth-child(9) { + animation-delay: 1.8s; +} + + </style> +</head> +<body <?php echo $rtl ? 'align="right"' : ''?>> + <?php echo $hsnav?> +<div id="master"> + <h1><a href="about/"><?php _g('Mageia, a free, community-based Linux distribution for desktop & server.'); ?></a></h1> +</div> + +<div <?php echo $rtl ? 'align="right"' : ''?> id="up"> + <div class="container"> + <div> + <?php + include '../lib/news.php'; + $loc_planet_url = _r('https://planet.mageia.org/en/'); + $loc_blog_url = _r('https://blog.mageia.org/en/'); + $eng_planet_url = 'https://planet.mageia.org/en/'; + $eng_blog_url = 'https://blog.mageia.org/en/'; + $fresh_blog_post_titles = prepare_fresh_blog_post_titles($eng_planet_url, $eng_blog_url, $loc_planet_url, $loc_blog_url, 1, 1); + $fresh_loc_posts = $fresh_blog_post_titles[1]; + $num_fresh_loc_posts = $fresh_blog_post_titles[2]; + $fresh_eng_posts = $fresh_blog_post_titles[4]; + $first_source = $fresh_blog_post_titles[5]; + $num_fresh_eng_posts = count($fresh_eng_posts); + if (0 < $num_fresh_loc_posts || 0 < $num_fresh_eng_posts) { + $prefix = '<span style="font-weight: bold;">'; + if ($first_source == 1) { + $prefix .= sprintf(_r('Latest news from our <a href="%s">localized planet</a>:'), $loc_planet_url); + } else if ($first_source == 2) { + $prefix .= sprintf(_r('Latest news from our <a href="%s">localized blog</a>:'), $loc_blog_url); + } else if ($first_source == 3) { + $prefix .= sprintf(_r('Latest news from our <a href="%s">English planet</a>:'), $eng_planet_url); + } else if ($first_source == 4) { + $prefix .= sprintf(_r('Latest news from our <a href="%s">English blog</a>:'), $eng_blog_url); + } + $prefix .= '</span> '; + + if (0 < $num_fresh_loc_posts) { + show_feed($locale, null, '', '', 0, null, true, $prefix, $fresh_loc_posts); + } else if (0 < $num_fresh_eng_posts) { + show_feed($locale, null, '', '', 0, null, true, $prefix, $fresh_eng_posts); + } + } + ?> + </div> + <div class="row"> + <div class="col"> + <div id="b1"> + <h2 <?php echo $rtl ? 'align="right"' : ''?>><?php _g('Change your perspective'); ?></h2> + <ul id="p"><?php + _g('Stable, secure operating system for desktop & server', null, 'li'); + _g('Free Software, coproduced by hundreds of people', null, 'li'); + _g('Elected governance, nonprofit organization', null, 'li'); + _g('You can be part of it', null, 'li'); + ?></ul> + </div> + <div id="b2"> + <ul id="dl"> + <li><a href="/<?php echo $locale ?>/downloads/" id="dl-btn"> + + <span id="dl-btn-mageia"> +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" viewBox="0 0 774 236.92" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g transform="translate(-125 -521.36)"><g transform="translate(-.20804 7.0001)" fill="#2397d4"><path class="bubble" d="m177.89 597.13h-0.01c-6.6729 0-12.107-5.4267-12.114-12.095-0.01-6.6905 5.4251-12.125 12.104-12.132 6.683 0 12.116 5.4267 12.124 12.095 0 6.6905-5.4251 12.126-12.104 12.133z"/><path class="bubble" d="m210.61 588.24c-6.2309 0-11.302-5.0662-11.307-11.292-0.01-6.242 5.0612-11.316 11.296-11.321 6.2392 0 11.311 5.0651 11.317 11.291 0 6.242-5.0622 11.316-11.296 11.323h-0.01z"/><path class="bubble" d="m201.3 555.96c0 5.5755-4.5198 10.095-10.095 10.095s-10.095-4.5199-10.095-10.095c0-5.5756 4.5198-10.095 10.095-10.095s10.095 4.5198 10.095 10.095z" stroke-width="1.4422"/><path class="bubble" d="m216.65 539c0 5.1294-4.1581 9.2875-9.2875 9.2875s-9.2875-4.1581-9.2875-9.2875 4.1581-9.2875 9.2875-9.2875 9.2875 4.1581 9.2875 9.2875z" stroke-width=".80761"/><path class="bubble" d="m195.65 522.44c0 4.4603-3.6158 8.0761-8.0761 8.0761s-8.0761-3.6158-8.0761-8.0761 3.6158-8.0761 8.0761-8.0761 8.0761 3.6158 8.0761 8.0761z" stroke-width=".76915"/></g><path class="cauldron" d="m143.93 615.04c-10.45 13.545-18.926 28.781-18.926 47.238 0 40.006 30.358 73 68 73 37.64 0 68-32.993 68-73 0-18.461-8.4889-33.212-19.53-47.238-4.1402-4.3446-10.118-3.6986-14.469-0.91856-12.733 6.5886-19.606 9.2209-34.001 9.1565-13.922-0.0624-21.237-2.336-33.97-9.2774-4.3514-2.6592-10.964-3.3052-15.104 1.0394zm9.0742 11.238c13.198 7.2975 24.969 11 40 11 15.044 0 26.795-3.7025 40-11 7.2055 10.16 14 22.758 14 36 0 32.801-24.175 59-54 59-29.826 0-55-26.199-55-59 0-13.225 7.7788-25.832 15-36z" color="#000000" fill="#262f45" style="text-indent:0;text-transform:none"/><path class="text" d="m346 632.28c-24 0-42 18-42 42v40h12v-40c0-18 12-30 30-30s30 12 30 30v40h12v-40c0-18 12-30 30-30s30 12 30 30v40h12v-40c0-24-18-42-42-42-15.665 0-28.784 7.6868-36 19.687-7.2157-12.001-20.335-19.687-36-19.687z" fill="#262f45"/><path class="text" d="m521 632.28c-24 0-42 18-42 42s18 42 42 42c12 0 22.5-4.5 30-12v10h12v-40c0-24-18-42-42-42zm0 12c18 0 30 12 30 30s-12 30-30 30-30-12-30-30 12-30 30-30z" fill="#262f45"/><path class="text" d="m623 632.28c-24 0-42 18-42 42s18 42 42 42c12 0 22.5-4.5 30-12v12c0 18-12 30-30 30v12c24 0 42-18 42-42v-42c0-24-18-42-42-42zm0 12c18 0 30 12 30 30s-12 30-30 30-30-12-30-30 12-30 30-30z" fill="#262f45"/><path class="text" d="m725 632.28c-24 0-42 18-42 42s18 42 42 42v-12c-15.908 0-27.106-9.3968-29.5-24h71.125c0.25558-1.9564 0.375-3.9482 0.375-6 0-24-18-42-42-42zm0 12c15.908 0 27.106 9.397 29.5 24h-59c2.3939-14.603 13.592-24 29.5-24z" fill="#262f45"/><path class="text" d="m785 634.28h12v80h-12z" fill="#262f45"/><path class="text" d="m791 745.28c-4.9706 0-9-4.0294-9-9 0-4.9705 4.0294-8.9999 9-8.9999 4.9705 0 9 4.0294 9 8.9999 0 4.9706-4.0295 9-9 9z" fill="#2397d4"/><path class="text" d="m857 632.28c-24 0-42 18-42 42s18 42 42 42c12 0 22.5-4.5 30-12v10h12v-40c0-24-18-42-42-42zm0 12c18 0 30 12 30 30s-12 30-30 30-30-12-30-30 12-30 30-30z" fill="#262f45"/></g></svg> + </span> + <span style="font-size: 32px; color: green; float: right;"></span> + <span class="dl-btn free-dl"><?php _g('Mageia 8'); /* _g('Mageia 8.1'); */?></span> + <span class="dl-btn"><?php _g('released in february 2021'); ?></span> + + </a> + <p class="dl-info"> + <?php _g('<a href="%s" hreflang="en">Release notes</a>', array(_r('https://wiki.mageia.org/en/Mageia_8_Release_Notes'))); ?>, + <?php _g('<a href="%s" hreflang="en">errata</a>', array(_r('https://wiki.mageia.org/en/Mageia_8_Errata'))); ?>. + + </p> + </li> + <li><a href="contribute/" class="dl-btn-other"><?php _g('<strong>Get involved</strong> in the next version'); ?></a> + </li> + + + + + + + + <!--<li><a href="/downloads/prerelease/" class="dl-btn-other"><?php _g('Test'); ?> Mageia 9</a></li>--> + + + + </ul> + </div> + </div><!--col--> + </div><!--row--> + </div> +</div> +<?php echo common_footer($locale); ?> +</body> +</html> diff --git a/test/news.php b/test/news.php new file mode 100644 index 000000000..281cb61ec --- /dev/null +++ b/test/news.php @@ -0,0 +1,79 @@ +<?php +/** +*/ +define('HLANG', true); +define('ALIGNMENT', 'Center'); +require '../langs.php'; +$dictionary = read_translation_file($locale, array('index', 'news', 'common_footer')); +$rtl = is_locale_rtl($locale); + +?><!DOCTYPE html> +<html <?php echo $rtl ? 'dir="rtl"' : 'dir="ltr"'?> lang="<?php echo $locale; ?>"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <?php echo common_header(); ?> +</head> +<body> + <?php echo $hsnav?> + +<?php +include_once G_APP_ROOT . '/lib/simplepie/autoloader.php'; +//include_once('../idn/idna_convert.class.php'); + +// Parse it +$feed = new SimplePie(); + + + $feed->set_feed_url("https://blog.mageia.org/en"); + $feed->set_cache_location(realpath(G_APP_ROOT . '/_nav/var/tmp/cache')); + $feed->set_cache_duration(3600 * $cache_timeout); + $feed->set_timeout(10); // second part of a #mga23215 bugfix + $feed->force_cache_fallback(true); // this should help if rss files are not retrievable + $feed->enable_order_by_date(true); + $feed->init(); + $feed->handle_content_type(); + +$feed->handle_content_type(); + +?> + +<pre> +<?php + +// memory_get_peak_usage() only exists on PHP 5.2 and higher if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option) +if (function_exists('memory_get_peak_usage')) +{ + var_dump($time, memory_get_usage(), memory_get_peak_usage()); +} +// memory_get_usage() only exists if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option) +else if (function_exists('memory_get_usage')) +{ + var_dump($time, memory_get_usage()); +} +else +{ + var_dump($time); +} + +// Output buffer +function callable_htmlspecialchars($string) +{ + return htmlspecialchars($string); +} +ob_start('callable_htmlspecialchars'); + +// Output +print_r($feed); +ob_end_flush(); + +?> +</pre> + + </div> + + </div> +</div> +<?php echo common_footer($locale); ?> +</body> +</html> diff --git a/test/sp_test.php b/test/sp_test.php new file mode 100644 index 000000000..eae94828d --- /dev/null +++ b/test/sp_test.php @@ -0,0 +1,496 @@ +<?php +if (isset($_GET['logopng'])) +{ + $data='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'; + header('Content-type: image/png'); + echo base64_decode($data); + exit; +} +else if (isset($_GET['background'])) +{ + $data='R0lGODlhMAEeAeYAAP///8ni6cTf5+72+PD3+c3k6+nz9ufy9ev099Pn7bnZ48bg6LfY4uHv8/r8/f3+/v7//7bX4cjh6fj7/Mvj6vz9/rva4+z19/X6+/f7/Pn8/fb6+7jZ4vv9/bra473b5Lzb5LXX4b7c5b/c5e31+NTo7tvs8dfq7/H3+bjY4tnq79Hm7c/l69nr8PL4+t7t8sDd5cLe5uPw9Nvr8Mri6fP4+tLn7er099Hm7O/2+dDm7OTw9OXx9Nbp7tbp7+Lv8+Du8szj6sXg57bY4d3s8djq7+jz9tzs8cPe58fh6M7k68Pf5+by9fz+/sDd5vT5+vT5+97t8bbY4trr8P7+/v7+/+Pw8+Xx9dXo7sHe5vH4+fP5+sHd5t/u8s/l7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAwAR4BAAf/gCGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKNEaWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExbBDyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7KUuHi4+Tl5ufo6err7O3u7/Dx8vP09fb34wz6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2osmKKjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qc+ZGDzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1aAKsmrdyrWr169gw4odS7as2bNo06pdy7at27dw/+PKnUu3rt27ePOS9cC3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sz5sIXPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fqkEIH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOLb/6hvPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFgifCAgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okoTjjCiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5P+SNsLg5JNQRinllFRWaeWVWGap5ZZcdunll2CGKeaYZELpxJlopqnmmmy26eabcMYp55x01mnnnXjmqeeefPaZJheABirooIQWauihiCaq6KKMNuroo5BGKumklFZqqaBZZKrpppx26umnoIYq6qiklmrqqaimquqqrLbq6qubxiDrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHI0orEssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghtvsEuSWa+656Kar7rrstuvuu/DGK++89NZr77345quvuQL06++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPHGHHeMsBAghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNdss8gL5Kzzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGdNdBJcd+3112CHLfbYZJdt9tlop6322my37fbbcMctt9cS1G333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFcOeACYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuI9Ow+689+7778AHL/zwxBdv/PHIJ6/88sw37/zz0EffOwXUV2/99dhnr/323Hfv/ffghy/+//jkl2/++einr/767Lfv/vvwxy///PR/H8T9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAbmrwAQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTDcoBJmSMMa2vCGOMyhDnfIwx768IdADKIQh0jEIhrxiEhMYg1ZwMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxid6IUymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73eEYd+PGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSUlA4uCSmMykJjfJyU568v+ToAylKEdJylKa8pSoTKUqV8nKVmZyBbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhpTljZIpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm8tMgDjHSc5ymvOc6EynOtfJzna6853wjKc850nPetrznvjMpz73yc9++vOfAA2oQNtZgoIa9KAITahCF8rQhjr0oRCNqEQnStGKWvSiGM2oRjd6UCx49KMgDalIR0rSkpr0pChNqUpXytKWuvSlMI2pTGdKU5D24KY4zalOd8rTnvr0p0ANqlCHStSiGvWoSE2qUpfK1Kbm1AdQjapUp0rVqlr1qlj/zapWt8rVrnr1q2ANq1jHStaymlWqJ0irWtfK1ra69a1wjatc50rXutr1rnjNq173yte++vWvay2CYAdL2MIa9rCITaxiF8vYxjr2sZCNrGQnS9nKWvaymCWsCjbL2c569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI1tZ1tA29ra9ra4za1ud8vb3vr2t8ANrnCHS9ziGve4yE2ucm07heY697nQja50p0vd6lr3utjNrna3y93ueve74A2veMf73BmY97zoTa9618ve9rr3vfCNr3znS9/62ve++M2vfvfLX/Sa4L8ADrCAB0zgAhv4wAhOsIIXzOAGO/jBEI6w/4QnTOEKB/gIGM6whjfM4Q57+MMgDrGIR0ziEpv4xChOsYpXzOIWu1jDRIixjGdM4xrb+MY4zrGOd8zjHvv4x0AOspCHTOQiG/nIM46CkpfM5CY7+clQjrKUp0zlKlv5yljOspa3zOUue/nLYGbyC8ZM5jKb+cxoTrOa18zmNrv5zXCOs5znTOc62/nOeM5zmbvA5z77+c+ADrSgB03oQhv60IhOtKIXzehGO/rRkI60pP0MhEpb+tKYzrSmN83pTnv606AOtahHTepSm/rUqE61qld96Qa4+tWwjrWsZ03rWtv61rjOta53zete+/rXwA62sIdN7GIb+9jITrayl//N7GY7O9c/iLa0p03talv72tjOtra3ze1ue/vb4A63uMdN7nKb+9zTtoK6183udrv73fCOt7znTe962/ve+M63vvfN7377+98AZ7cMBk7wghv84AhPuMIXzvCGO/zhEI+4xCdO8Ypb/OIYz3jBd8Dxjnv84yAPuchHTvKSm/zkKE+5ylfO8pa7/OUwj7nMPc6Dmtv85jjPuc53zvOe+/znQA+60IdO9KIb/ehIT7rSl37zKzj96VCPutSnTvWqW/3qWM+61rfO9a57/etgD7vYx052qDPh7GhPu9rXzva2u/3tcI+73OdO97rb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'; + header('Content-type: image/gif'); + echo base64_decode($data); + exit; +} + +$php_ok = (function_exists('version_compare') && version_compare(phpversion(), '5.6.0', '>=')); +$pcre_ok = extension_loaded('pcre'); +$curl_ok = function_exists('curl_exec'); +$zlib_ok = extension_loaded('zlib'); +$mbstring_ok = extension_loaded('mbstring'); +$iconv_ok = extension_loaded('iconv'); +$intl_ok = version_compare(phpversion(), '5.5.0', '>=') && extension_loaded('intl'); +if (extension_loaded('xmlreader')) +{ + $xml_ok = true; +} +elseif (extension_loaded('xml')) +{ + $parser_check = xml_parser_create(); + xml_parse_into_struct($parser_check, '<foo>&</foo>', $values); + xml_parser_free($parser_check); + $xml_ok = isset($values[0]['value']); +} +else +{ + $xml_ok = false; +} + + + +if( php_sapi_name() === 'cli' ): + +$testHeader = <<<EOF + + +-----------------------------------------------------------------+ + | SimplePie: Server Compatibility Test | + +-----------------------------------------------------------------+ + | Test | Should Be | What You Have | ++--------------------------------------------------------------------------+ +EOF; + +$testRow = <<<EOF + +| %s| %s| %s| %s| ++--------------------------------------------------------------------------+ +EOF; + +echo $testHeader; + + +echo sprintf($testRow,str_pad(($php_ok ? 'Passed' : 'Failed'), 7),str_pad('PHP',20),str_pad('5.6.0 or higher', 20),str_pad(phpversion(), 20)); + + + +echo sprintf($testRow,str_pad(($xml_ok ? 'Passed' : 'Failed'), 7),str_pad('XML',20),str_pad('Enabled', 20),str_pad(($xml_ok ? 'Enabled, and sane' : 'Disabled, or broken'), 20)); + + +echo sprintf($testRow,str_pad(($pcre_ok ? 'Passed' : 'Failed'), 7),str_pad('PCRE ^^^',20),str_pad('Enabled', 20),str_pad(($pcre_ok ? 'Enabled' : 'Disabled'), 20)); + + +echo sprintf($testRow,str_pad(($curl_ok ? 'Passed' : 'Failed'), 7),str_pad('cURL',20),str_pad('Enabled', 20),str_pad((extension_loaded('curl') ? 'Enabled' : 'Disabled'), 20)); + + + +echo sprintf($testRow,str_pad(($zlib_ok ? 'Passed' : 'Failed'), 7),str_pad('Zlib',20),str_pad('Enabled', 20),str_pad(($zlib_ok ? 'Enabled' : 'Disabled'), 20)); + + +echo sprintf($testRow,str_pad(($mbstring_ok ? 'Passed' : 'Failed'), 7),str_pad('mbstring',20),str_pad('Enabled', 20),str_pad(( $mbstring_ok ? 'Enabled' : 'Disabled' ), 20)); + + +echo sprintf($testRow,str_pad(($iconv_ok ? 'Passed' : 'Failed'), 7),str_pad('iconv',20),str_pad('Enabled', 20),str_pad(( $iconv_ok ? 'Enabled' : 'Disabled' ), 20)); + + +echo sprintf($testRow,str_pad(($intl_ok ? 'Passed' : 'Failed'), 7),str_pad('intl',20),str_pad('Enabled', 20),str_pad(( $intl_ok ? 'Enabled' : 'Disabled' ), 20)); + + +echo "\n\n"; + +echo "What does this mean? \n\n"; + +if ($php_ok && $xml_ok && $pcre_ok && $mbstring_ok && $iconv_ok && $intl_ok && $curl_ok && $zlib_ok): + echo "You have everything you need to run SimplePie properly! Congratulations!\n\n"; +else: + if ($php_ok): + echo "PHP: You are running a supported version of PHP. No problems here.\n"; + + if ($xml_ok): + echo "XML: You have XMLReader support or a version of XML support that isn't broken installed. No problems here.\n"; + if ($pcre_ok): + echo "PCRE: You have PCRE support installed. No problems here.\n"; + if ($curl_ok): + echo "cURL: You have cURL support installed. No problems here.\n"; + else: + echo "cURL: The cURL extension is not available. SimplePie will use fsockopen() instead.\n"; + endif; + + if ($zlib_ok): + echo "Zlib: You have Zlib enabled. This allows SimplePie to support GZIP-encoded feeds. No problems here.\n"; + else: + echo "Zlib: The Zlib extension is not available. SimplePie will ignore any GZIP-encoding, and instead handle feeds as uncompressed text.\n"; + endif; + + if ($mbstring_ok && $iconv_ok && $intl_ok): + echo "mbstring, iconv and intl: You have both mbstring, iconv and intl installed and enabled! This will allow SimplePie to handle the greatest number of languages. \nCheck the http://simplepie.org/wiki/faq/supported_character_encodings chart to see what's supported on your webhost.\n"; + elseif (($mbstring_ok && $iconv_ok) || + ($mbstring_ok && $intl_ok) || + ($iconv_ok && $intl_ok) + ): + if ($mbstring_ok): + echo "mbstring: mbstring is installed and enabled.\n"; + else: + echo "mbstring: mbstring extension is not available.\n"; + endif; + if ($iconv_ok): + echo "iconv: iconv is installed and enabled.\n"; + else: + echo "iconv: iconv extension is not available.\n"; + endif; + if ($intl_ok): + echo "intl: intl is installed and enabled.\n"; + else: + echo "intl: intl extension is not supported/available (PHP 5.5+).\n"; + endif; + echo "Check the http://simplepie.org/wiki/faq/supported_character_encodings chart to see what's supported on your webhost.\n"; + else: + echo "mbstring, iconv and intl: You do not have either of the extensions installed and enabled, (intl supported as of PHP 5.5+). This will significantly impair your ability to read non-English feeds, as well as even some English ones. Check the http://simplepie.org/wiki/faq/supported_character_encodings chart to see what's supported on your webhost.\n"; + endif; + + else: + echo "PCRE: Your PHP installation doesn't support Perl-Compatible Regular Expressions. SimplePie is a no-go at the moment.\n"; + endif; + + + else: + echo "XML: Your PHP installation doesn't support XML parsing. SimplePie is a no-go at the moment.\n"; + endif; + + else: + echo "PHP: You are running an unsupported version of PHP. SimplePie is a no-go at the moment.\n"; + endif; + +endif; + + +$bottomLineFooter = <<<EOF +You can download the latest version of SimplePie from http://simplepie.org/downloads/ and install it by http://simplepie.org/wiki/setup/start . +You can find example uses with http://simplepie.org/ideas/ . +Take the time to read http://simplepie.org/wiki/setup/start to make sure you're prepared to use SimplePie. No seriously, read them. + +Note: Passing this test does not guarantee that SimplePie will run on your webhost -- it only ensures that the basic requirements have been addressed. +EOF; + +if ($php_ok && $xml_ok && $pcre_ok && $mbstring_ok && $iconv_ok): + +echo <<<EOF + +Bottom Line: Yes, you can! +Your webhost has its act together!" + +{$bottomLineFooter} +EOF; + + +elseif ($php_ok && $xml_ok && $pcre_ok): +echo <<<EOF + +Bottom Line: Yes, you can! +For most feeds, it'll run with no problems. There are http://simplepie.org/wiki/faq/supported_character_encodings that you might have a hard time with though. + +{$bottomLineFooter} +EOF; + +else: + +echo <<<EOF + +Bottom Line: We're sorry ... +Your webhost does not support the minimum requirements for SimplePie. +It may be a good idea to contact your webhost, and ask them to install a more recent version of PHP as well as the xmlreader, xml, mbstring, iconv, curl, and zlib extensions. + +EOF; + +endif; + + + +echo "\n\n^^^ Some recent versions of the PCRE (PERL-Compatible Regular Expression) engine compiled into PHP have been buggy, and are the source of PHP segmentation faults (e.g. crashes) which cause random things like blank, white screens. Check the http://simplepie.org/support/ for the latest information on patches and ongoing fixes.\n"; + +exit(0); + +endif; + + + +header('Content-type: text/html; charset=UTF-8'); + +?><!DOCTYPE html> + +<html lang="en"> +<head> +<title>SimplePie: Server Compatibility Test</title> + +<style type="text/css"> +body { + font:14px/1.4em "Lucida Grande", Verdana, Arial, Helvetica, Clean, Sans, sans-serif; + letter-spacing:0px; + color:#333; + margin:0; + padding:0; + background:#fff url(<?php echo pathinfo(__FILE__, PATHINFO_BASENAME); ?>?background) repeat-x top left; +} + +div#site { + width:550px; + margin:20px auto 0 auto; +} + +a { + color:#000; + text-decoration:underline; + padding:0 1px; +} + +a:hover { + color:#fff; + background-color:#333; + text-decoration:none; + padding:0 1px; +} + +p { + margin:0; + padding:5px 0; +} + +em { + font-style:normal; + background-color:#ffc; +} + +ul, ol { + margin:10px 0 10px 20px; + padding:0 0 0 15px; +} + +ul li, ol li { + margin:0 0 7px 0; + padding:0 0 0 3px; +} + +h2 { + font-size:18px; + padding:0; + margin:30px 0 10px 0; +} + +h3 { + font-size:16px; + padding:0; + margin:20px 0 5px 0; +} + +h4 { + font-size:14px; + padding:0; + margin:15px 0 5px 0; +} + +code { + font-size:1.1em; + background-color:#f3f3ff; + color:#000; +} + +em strong { + text-transform: uppercase; +} + +table#chart { + border-collapse:collapse; +} + +table#chart th { + background-color:#eee; + padding:2px 3px; + border:1px solid #fff; +} + +table#chart td { + text-align:center; + padding:2px 3px; + border:1px solid #eee; +} + +table#chart tr.enabled td { + /* Leave this alone */ +} + +table#chart tr.disabled td, +table#chart tr.disabled td a { + color:#999; + font-style:italic; +} + +table#chart tr.disabled td a { + text-decoration:underline; +} + +div.chunk { + margin:20px 0 0 0; + padding:0 0 10px 0; + border-bottom:1px solid #ccc; +} + +.footnote, +.footnote a { + font:10px/12px verdana, sans-serif; + color:#aaa; +} + +.footnote em { + background-color:transparent; + font-style:italic; +} +</style> + +<script type="text/javascript"> +// Sleight - Alpha transparency PNG's in Internet Explorer 5.5/6.0 +// (c) 2001, Aaron Boodman; http://www.youngpup.net + +if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) { + document.writeln('<style type="text/css">img, input.image { visibility:hidden; } </style>'); + window.attachEvent("onload", fnLoadPngs); +} + +function fnLoadPngs() { + var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, ''); + var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5); + + for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) { + if (itsAllGood && img.src.match(/\png$/i) != null) { + var src = img.src; + var div = document.createElement("DIV"); + div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')"; + div.style.width = img.width + "px"; + div.style.height = img.height + "px"; + img.replaceNode(div); + } + img.style.visibility = "visible"; + } +} +</script> + +</head> + +<body> + +<div id="site"> + <div id="content"> + + <div class="chunk"> + <h2 style="text-align:center;"><img src="<?php echo pathinfo(__FILE__, PATHINFO_BASENAME); ?>?logopng" alt="SimplePie Compatibility Test" title="SimplePie Compatibility Test" /></h2> + <table cellpadding="0" cellspacing="0" border="0" width="100%" id="chart"> + <thead> + <tr> + <th>Test</th> + <th>Should Be</th> + <th>What You Have</th> + </tr> + </thead> + <tbody> + <tr class="<?php echo ($php_ok) ? 'enabled' : 'disabled'; ?>"> + <td>PHP</td> + <td>5.6.0 or higher</td> + <td><?php echo phpversion(); ?></td> + </tr> + <tr class="<?php echo ($xml_ok) ? 'enabled, and sane' : 'disabled, or broken'; ?>"> + <td><a href="http://php.net/xml">XML</a></td> + <td>Enabled</td> + <td><?php echo ($xml_ok) ? 'Enabled, and sane' : 'Disabled, or broken'; ?></td> + </tr> + <tr class="<?php echo ($pcre_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/pcre">PCRE</a>¹</td> + <td>Enabled</td> + <td><?php echo ($pcre_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($curl_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/curl">cURL</a></td> + <td>Enabled</td> + <td><?php echo (extension_loaded('curl')) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($zlib_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/zlib">Zlib</a></td> + <td>Enabled</td> + <td><?php echo ($zlib_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($mbstring_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/mbstring">mbstring</a></td> + <td>Enabled</td> + <td><?php echo ($mbstring_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($iconv_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/iconv">iconv</a></td> + <td>Enabled</td> + <td><?php echo ($iconv_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + </tbody> + </table> + </div> + + <div class="chunk"> + <h3>What does this mean?</h3> + <ol> + <?php if ($php_ok && $xml_ok && $pcre_ok && $mbstring_ok && $iconv_ok && $curl_ok && $zlib_ok): ?> + <li><em>You have everything you need to run SimplePie properly! Congratulations!</em></li> + <?php else: ?> + <?php if ($php_ok): ?> + <li><strong>PHP:</strong> You are running a supported version of PHP. <em>No problems here.</em></li> + <?php if ($xml_ok): ?> + <li><strong>XML:</strong> You have XMLReader support or a version of XML support that isn't broken installed. <em>No problems here.</em></li> + <?php if ($pcre_ok): ?> + <li><strong>PCRE:</strong> You have PCRE support installed. <em>No problems here.</em></li> + <?php if ($curl_ok): ?> + <li><strong>cURL:</strong> You have <code>cURL</code> support installed. <em>No problems here.</em></li> + <?php else: ?> + <li><strong>cURL:</strong> The <code>cURL</code> extension is not available. SimplePie will use <code>fsockopen()</code> instead.</li> + <?php endif; ?> + + <?php if ($zlib_ok): ?> + <li><strong>Zlib:</strong> You have <code>Zlib</code> enabled. This allows SimplePie to support GZIP-encoded feeds. <em>No problems here.</em></li> + <?php else: ?> + <li><strong>Zlib:</strong> The <code>Zlib</code> extension is not available. SimplePie will ignore any GZIP-encoding, and instead handle feeds as uncompressed text.</li> + <?php endif; ?> + + <?php if ($mbstring_ok && $iconv_ok): ?> + <li><strong>mbstring and iconv:</strong> You have both <code>mbstring</code> and <code>iconv</code> installed! This will allow SimplePie to handle the greatest number of languages. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php elseif ($mbstring_ok): ?> + <li><strong>mbstring:</strong> <code>mbstring</code> is installed, but <code>iconv</code> is not. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php elseif ($iconv_ok): ?> + <li><strong>iconv:</strong> <code>iconv</code> is installed, but <code>mbstring</code> is not. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php else: ?> + <li><strong>mbstring and iconv:</strong> <em>You do not have either of the extensions installed.</em> This will significantly impair your ability to read non-English feeds, as well as even some English ones. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php endif; ?> + <?php else: ?> + <li><strong>PCRE:</strong> Your PHP installation doesn't support Perl-Compatible Regular Expressions. <em>SimplePie is a no-go at the moment.</em></li> + <?php endif; ?> + <?php else: ?> + <li><strong>XML:</strong> Your PHP installation doesn't support XML parsing. <em>SimplePie is a no-go at the moment.</em></li> + <?php endif; ?> + <?php else: ?> + <li><strong>PHP:</strong> You are running an unsupported version of PHP. <em>SimplePie is a no-go at the moment.</em></li> + <?php endif; ?> + <?php endif; ?> + </ol> + </div> + + <div class="chunk"> + <?php if ($php_ok && $xml_ok && $pcre_ok && $mbstring_ok && $iconv_ok) { ?> + <h3>Bottom Line: Yes, you can!</h3> + <p><em>Your webhost has its act together!</em></p> + <p>You can download the latest version of SimplePie from <a href="http://simplepie.org/downloads/">SimplePie.org</a> and install it by <a href="http://simplepie.org/wiki/setup/start">following the instructions</a>. You can find example uses with <a href="http://simplepie.org/ideas/">SimplePie Ideas</a>.</p> + <p>Take the time to read <a href="http://simplepie.org/wiki/setup/start">Requirements and Getting Started</a> to make sure you're prepared to use SimplePie. No seriously, read them.</p> + <p class="footnote"><em><strong>Note</strong></em>: Passing this test does not guarantee that SimplePie will run on your webhost — it only ensures that the basic requirements have been addressed.</p> + <?php } else if ($php_ok && $xml_ok && $pcre_ok) { ?> + <h3>Bottom Line: Yes, you can!</h3> + <p><em>For most feeds, it'll run with no problems.</em> There are <a href="http://simplepie.org/wiki/faq/supported_character_encodings">certain languages</a> that you might have a hard time with though.</p> + <p>You can download the latest version of SimplePie from <a href="http://simplepie.org/downloads/">SimplePie.org</a> and install it by <a href="http://simplepie.org/wiki/setup/start">following the instructions</a>. You can find example uses with <a href="http://simplepie.org/ideas/">SimplePie Ideas</a>.</p> + <p>Take the time to read <a href="http://simplepie.org/wiki/setup/start">Requirements and Getting Started</a> to make sure you're prepared to use SimplePie. No seriously, read them.</p> + <p class="footnote"><em><strong>Note</strong></em>: Passing this test does not guarantee that SimplePie will run on your webhost — it only ensures that the basic requirements have been addressed.</p> + <?php } else { ?> + <h3>Bottom Line: We're sorry…</h3> + <p><em>Your webhost does not support the minimum requirements for SimplePie.</em> It may be a good idea to contact your webhost, and ask them to install a more recent version of PHP as well as the <code>xmlreader</code>, <code>xml</code>, <code>mbstring</code>, <code>iconv</code>, <code>curl</code>, and <code>zlib</code> extensions.</p> + <?php } ?> + </div> + + <div class="chunk"> + <p class="footnote">¹ — Some recent versions of the PCRE (PERL-Compatible Regular Expression) engine compiled into PHP have been buggy, and are the source of PHP segmentation faults (e.g. crashes) which cause random things like blank, white screens. Check the <a href="http://simplepie.org/support/">Support Forums</a> for the latest information on patches and ongoing fixes.</p> + </div> + + </div> + +</div> + +</body> +</html> |