Viewing file: extract.php (2.74 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * Extracts JS files from content * * @param string $content * @return array */ function w3_extract_js($content) { $matches = null; $files = array();
$content = preg_replace('~<!--.*?-->~s', '', $content);
if (preg_match_all('~<script\s+[^<>]*src=["\']?([^"\']+)["\']?[^<>]*>\s*</script>~is', $content, $matches)) { $files = $matches[1]; }
$files = array_values(array_unique($files));
return $files; }
/** * Extract CSS files from content * * @param string $content * @return array */ function w3_extract_css($content) { $matches = null; $files = array();
$content = preg_replace('~<!--.*?-->~s', '', $content);
if (preg_match_all('~<link\s+([^>]+)/?>(.*</link>)?~Uis', $content, $matches, PREG_SET_ORDER)) { foreach ($matches as $match) { $attrs = array(); $attr_matches = null;
if (preg_match_all('~(\w+)=["\']([^"\']*)["\']~', $match[1], $attr_matches, PREG_SET_ORDER)) { foreach ($attr_matches as $attr_match) { $attrs[$attr_match[1]] = trim($attr_match[2]); } }
if (isset($attrs['href']) && isset($attrs['rel']) && stristr($attrs['rel'], 'stylesheet') !== false && (!isset($attrs['media']) || stristr($attrs['media'], 'print') === false)) { $files[] = $attrs['href']; } } }
if (preg_match_all('~@import\s+(url\s*)?\(?["\']?\s*([^"\'\)\s]+)\s*["\']?\)?[^;]*;?~is', $content, $matches)) { $files = array_merge($files, $matches[2]); }
$files = array_values(array_unique($files));
return $files; }
function w3_extract_css2($content) { $matches = null; $files = array();
$content = preg_replace('~<!--.*?-->~s', '', $content);
if (preg_match_all('~<link\s+([^>]+)/?>(.*</link>)?~Uis', $content, $matches, PREG_SET_ORDER)) { foreach ($matches as $match) { $attrs = array(); $attr_matches = null; if (preg_match_all('~(\w+)=["\']([^"\']*)["\']~', $match[1], $attr_matches, PREG_SET_ORDER)) { foreach ($attr_matches as $attr_match) { $attrs[$attr_match[1]] = trim($attr_match[2]); } }
if (isset($attrs['href']) && isset($attrs['rel']) && stristr($attrs['rel'], 'stylesheet') !== false && (!isset($attrs['media']) || stristr($attrs['media'], 'print') === false)) { $files[] = array($match[0], $attrs['href']); } }
}
if (preg_match_all('~@import\s+(url\s*)?\(?["\']?\s*([^"\'\)\s]+)\s*["\']?\)?[^;]*;?~is', $content, $matches, PREG_SET_ORDER)) { foreach($matches as $match) $files[] = array($match[0],$match[2]); }
return $files; }
|