Difference between revisions of "User:Jor3l Boa/PHP/n2k.php"

From Second Life Wiki
Jump to navigation Jump to search
m (ACK! This time managed to put two <?php and ?> in... Time to go to bed!)
m (language tags to <source>)
 
(3 intermediate revisions by one other user not shown)
Line 2: Line 2:


n2k.php:
n2k.php:
<php>
<?php
//  PHP name2Key by Jor3l Boa
//  -------------------------
//  Released under Creative Commons 3.0
//  - devi@foravatars.com
//  -------------------------
//  Updated: 5/04/2010
        function getPage($web) {
$html = "";
  $ch = curl_init($web);
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  $html = curl_exec($ch);
  if(curl_errno($ch)) {
  $html = "";
  }
  curl_close ($ch);
return $html;
}
        function getBetween($content,$start,$end){
//by Jor3l :)
$a1 = strrpos($content,$start);
$content = substr($content,$a1 + strlen($start));
while($a2 = strrpos($content,$end)) {
$content = substr($content,0,$a2);
}
return $content;
}
function name2Key($name) {
$SL_SEARCH = 'http://search.secondlife.com/client_search.php?session=00000000-0000-0000-0000-000000000000&q=';
$sName = split(' ',$name);
$data = getPage($SL_SEARCH.$sName[0].'%2520'.$sName[1]);
$uuid = getBetween($data,'secondlife:///app/agent/','/about');
                if(!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/",$uuid)) $uuid = '00000000-0000-0000-0000-000000000000';
return $uuid;
}
?>
</php>


Updated version of n2k.php that will work with the new design
<source lang="php">
<php>
<?php
<?php
/PHP name2Key by Jor3l Boa
/*
//  Updated by Qwerty Venom
    PHP name2Key by Jor3l Boa
//  -------------------------
    -------------------------
//  Released under Creative Commons 3.0
    Released under Creative Commons 3.0
//  - devi@foravatars.com
    - devi@foravatars.com
//  -------------------------
    -------------------------
// Updated: 08/12/2010
    Updates (DD/MM/YYYY)
    25/09/2010 - Jor3l Boa: Removed some bites // Om nom nom nom
    12/08/2010 - Qwerty Venom: Updated version of n2k.php that will work with the new design
*/
   
   
         function getPage($web)
         function getPage($web)
Line 92: Line 49:
function name2Key($name)
function name2Key($name)
{
{
$SL_SEARCH = 'http://search.secondlife.com/client_search.php?session=00000000-0000-0000-0000-000000000000&q=';
                $NULL = '00000000-0000-0000-0000-000000000000';
$SL_SEARCH = "http://search.secondlife.com/client_search.php?session=$NULL&q=";
$sName = explode(' ',$name); //Qwerty changed split to explode
$sName = explode(' ',$name); //Qwerty changed split to explode
$data = getPage($SL_SEARCH.$sName[0].'+'.$sName[1]);
$data = getPage($SL_SEARCH.$sName[0].'+'.$sName[1]);
$uuid = getBetween($data,'http://world.secondlife.com/resident/','"');
$uuid = getBetween($data,'http://world.secondlife.com/resident/','"');
                 if(!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/",$uuid)) $uuid = '00000000-0000-0000-0000-000000000000';
                 if(!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/",$uuid)) $uuid = $NULL;
return $uuid;
return $uuid;
}
}
?>
?>
</php>
</source>


example:
example:
<php>
<source lang="php">
<?
<?
require_once('n2k.php');
require_once('n2k.php');
Line 109: Line 67:
echo $uuid;
echo $uuid;
?>
?>
</php>
</source>


<b>NOTE ON HOSTING PROVIDERS:</b>
<b>NOTE ON HOSTING PROVIDERS:</b>
Some hosting providers, notably GoDaddy, do not allow outbound traffic from their servers.  If you find that this script returns nothing, no matter what you try, that may be your issue.  The only fix is to switch providers to one that does allow outbound traffic.<br/><br/>
Some hosting providers, notably GoDaddy, do not allow outbound traffic from their servers.  If you find that this script returns nothing, no matter what you try, that may be your issue.  The only fix is to switch providers to one that does allow outbound traffic.<br/><br/>
<I>For an LSL version, see also: [[Name2Key_in_LSL]]</i>
<I>For an LSL version, see also: [[Name2Key_in_LSL]]</i>

Latest revision as of 20:39, 24 January 2015

PHP Based name2Key service.

n2k.php:

<?php
/*
    PHP name2Key by Jor3l Boa
    -------------------------
    Released under Creative Commons 3.0
    - devi@foravatars.com
    -------------------------
    Updates (DD/MM/YYYY)
    25/09/2010 - Jor3l Boa: Removed some bites // Om nom nom nom
    12/08/2010 - Qwerty Venom: Updated version of n2k.php that will work with the new design
*/
 
        function getPage($web)
	{
		$html = "";
		  $ch = curl_init($web);
		  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12");
		  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		  curl_setopt($ch, CURLOPT_HEADER, 0);
		  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
		  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
		  $html = curl_exec($ch);
		  if(curl_errno($ch))
		  {
			  $html = "";
		  }
		  curl_close ($ch);
		return $html;
	}

        function getBetween($content,$start,$end)
	{
		//by Jor3l :)
		$a1 = strrpos($content,$start);
		$content = substr($content,$a1 + strlen($start));
		while($a2 = strrpos($content,$end))
		{
			$content = substr($content,0,$a2);
		}
		return $content;
	}
 
	function name2Key($name)
	{
                $NULL = '00000000-0000-0000-0000-000000000000';
		$SL_SEARCH = "http://search.secondlife.com/client_search.php?session=$NULL&q=";
		$sName = explode(' ',$name); //Qwerty changed split to explode
		$data = getPage($SL_SEARCH.$sName[0].'+'.$sName[1]);
		$uuid = getBetween($data,'http://world.secondlife.com/resident/','"');
                if(!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/",$uuid)) $uuid = $NULL;
		return $uuid;
	}
?>

example:

<?
require_once('n2k.php');
$uuid = name2key('FirstName LastName');
echo $uuid;
?>

NOTE ON HOSTING PROVIDERS: Some hosting providers, notably GoDaddy, do not allow outbound traffic from their servers. If you find that this script returns nothing, no matter what you try, that may be your issue. The only fix is to switch providers to one that does allow outbound traffic.

For an LSL version, see also: Name2Key_in_LSL