Minor fix: correct url checking
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@196 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
parent
6b70f8355a
commit
d72790690e
2 changed files with 125 additions and 118 deletions
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/*
|
||||
Export for Google Custom Search
|
||||
*/
|
||||
Export for Google Custom Search
|
||||
*/
|
||||
|
||||
// Force HTTP authentication first!
|
||||
//require_once('httpauth.inc.php');
|
||||
|
@ -11,22 +11,22 @@ $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
|
|||
$userservice =& ServiceFactory::getServiceInstance('UserService');
|
||||
|
||||
/*
|
||||
// Restrict to admins?
|
||||
if(!$userservice->isAdmin($userservice->getCurrentUserId())) {
|
||||
// Restrict to admins?
|
||||
if(!$userservice->isAdmin($userservice->getCurrentUserId())) {
|
||||
die(T_('You are not allowed to do this action (admin access)'));
|
||||
}*/
|
||||
}*/
|
||||
|
||||
// Check if queried format is xml
|
||||
if (isset($_REQUEST['xml']) && (trim($_REQUEST['xml']) == 1))
|
||||
$xml = true;
|
||||
$xml = true;
|
||||
else
|
||||
$xml = false;
|
||||
$xml = false;
|
||||
|
||||
// Check to see if a tag was specified.
|
||||
if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != ''))
|
||||
$tag = trim($_REQUEST['tag']);
|
||||
$tag = trim($_REQUEST['tag']);
|
||||
else
|
||||
$tag = NULL;
|
||||
$tag = NULL;
|
||||
|
||||
// Get the posts relevant to the passed-in variables.
|
||||
$bookmarks =& $bookmarkservice->getBookmarks(0, NULL, NULL, $tag, NULL, getSortOrder());
|
||||
|
@ -39,14 +39,17 @@ header('Content-Type: text/plain');
|
|||
if(!$xml) {
|
||||
header('Content-Type: text/plain');
|
||||
foreach($bookmarks['bookmarks'] as $row) {
|
||||
if(checkUrl($row['bAddress'], false)) {
|
||||
echo $row['bAddress']."\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
header('Content-Type: application/xml');
|
||||
echo '<GoogleCustomizations>'."\n";
|
||||
echo ' <Annotations>'."\n";
|
||||
foreach($bookmarks['bookmarks'] as $row) {
|
||||
if(substr($row['bAddress'], 0, 7) == "http://") {
|
||||
//if(substr($row['bAddress'], 0, 7) == "http://") {
|
||||
if(checkUrl($row['bAddress'], false)) {
|
||||
echo ' <Annotation about="'.filter($row['bAddress']).'">'."\n";
|
||||
echo ' <Label name="include"/>'."\n";
|
||||
echo ' </Annotation>'."\n";
|
||||
|
|
|
@ -96,12 +96,13 @@ function shortenString($string, $maxSize=75) {
|
|||
}
|
||||
|
||||
/* Check url format and check online if the url is a valid page (Not a 404 error for example) */
|
||||
function checkUrl($url) {
|
||||
function checkUrl($url, $checkOnline = true) {
|
||||
//check format
|
||||
if(!preg_match("#(ht|f)tp(s?)\://\S+\.\S+#i",$url)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if($checkOnline) {
|
||||
//look if the page doesn't return a void or 40X or 50X HTTP code error
|
||||
$h = @get_headers($url);
|
||||
if(is_array($h) && strpos($h[0], '40') === false && strpos($h[0], '50') === false) {
|
||||
|
@ -109,6 +110,9 @@ function checkUrl($url) {
|
|||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue