网上不少这样的网站呢
随便都可以搜索的到
PHP函数集chm 你可以搜这个
csdn上也有

解决方案 »

  1.   

    php手册里有函数的详细说明.
    你这样要代码,怎么给呀,总得有个范围吧!
      

  2.   

    找个手册什么函数都有,或者看看http://61.139.52.111:8090/kj/Manfeel/w3pop/default-28.asp.htm也行
    这个分类比较细
      

  3.   

    php手册可以帮你的。
    http://www.php.net/manual/zh/
      

  4.   

    分享给你一个function convertip($ip) {    $return = '';    if(preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/", $ip)) {        $iparray = explode('.', $ip);        if($iparray[0] == 10 || $iparray[0] == 127 || ($iparray[0] == 192 && $iparray[1] == 168) || ($iparray[0] == 172 && ($iparray[1] >= 16 && $iparray[1] <= 31))) {
                $return = '- LAN';
            } elseif($iparray[0] > 255 || $iparray[1] > 255 || $iparray[2] > 255 || $iparray[3] > 255) {
                $return = '- Invalid IP Address';
            } else {
                $tinyipfile = S_ROOT.'./ipdata/tinyipdata.dat';
                $fullipfile = S_ROOT.'./ipdata/wry.dat';
                if(@file_exists($tinyipfile)) {
                    $return = convertip_tiny($ip, $tinyipfile);
                } elseif(@file_exists($fullipfile)) {
                    $return = convertip_full($ip, $fullipfile);
                }
            }
        }    return $return;}
      

  5.   

    //
    //获得当前的脚本网址
    //
    function GetCurUrl()
    {
    if(!empty($_SERVER["REQUEST_URI"])){
    $scriptName = $_SERVER["REQUEST_URI"];
    $nowurl = $scriptName;
    }
    else
    {
    $scriptName = $_SERVER["PHP_SELF"];
    if($_SERVER["QUERY_STRING"]=="")
    $nowurl = $scriptName;
    else
    $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
    }
    return $nowurl;
    }
    //
    //把全角数字转为半角数字
    //
    function GetAlabNum($fnum)
    {
    $nums = array("0","1","2","3","4","5","6","7","8","9");
    $fnums = "0123456789";
    for($i=0;$i<=9;$i++)
    $fnum = str_replace($nums[$i],$fnums[$i],$fnum);
    $fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum);
    if($fnum=="") $fnum=0;
    return $fnum;
    }
    //
    //去除HTML标记符号
    //
    function ClearHtml($html)
    {
    return trim(preg_replace("/[><]/","",$html));
    }
    function Text2Html($txt)
    {
    $txt = str_replace("  "," ",$txt);
    $txt = str_replace("<","&lt;",$txt);
    $txt = str_replace(">","&gt;",$txt);
    $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);
    return $txt;
    }
    //-----------------------------
    //获得HTML里的文本
    //-----------------------------
    function Html2Text($str)
    {
      $str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
      $alltext = "";
      $start = 1;
      for($i=0;$i<strlen($str);$i++){
        if($start==0 && $str[$i]==">") $start = 1;
        else if($start==1){
         if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
         else if(ord($str[$i])>32) $alltext .= $str[$i];
        }
      }
      $alltext = str_replace(" ","",$alltext);
      $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
      $alltext = preg_replace("/[ ]+/s"," ",$alltext);
      return $alltext;
    }
    //------------------------------------------
    //中文截取
    //这里是把双字节字符也看作一个字符
    //即是: "我是中国abcde的人!" 
    //这里会被看作有 12 个字符,而不是PHP所认为的单字节的Len
    //-------------------------------------------
    function cnw_left($str,$len)
    {
      return cnw_mid($str,0,$len);
    }
    function cnw_mid($str,$start,$slen)
    {
      $str_len = strlen($str);
      $strs = Array();
      for($i=0;$i<$str_len;$i++){
       if(ord($str[$i])>0x80)
       { $strs[] = $str[$i].$str[$i+1]; $i++;}
       else
       { $strs[] = $str[$i]; }
      }
      $wlen = count($strs);
      if($wlen < $start) return "";
      $restr = "";
      $startdd = $start;
      $enddd = $startdd + $slen;
      for($i=$startdd;$i<$enddd;$i++){
       if(!isset($strs[$i])) break;
       $restr .= $strs[$i];
      }
      return $restr;
    }
    //
    //中文截取2,单字节截取模式
    //
    function cn_substr($str,$slen,$startdd=0)
    {
    $restr = "";
    $c = "";
    $str_len = strlen($str);
    if($str_len < $startdd+1) return "";
    if($str_len < $startdd + $slen || $slen==0) $slen = $str_len - $startdd;
    $enddd = $startdd + $slen - 1;
    for($i=0;$i<$str_len;$i++)
    {
    if($startdd==0) $restr .= $c;
    else if($i > $startdd) $restr .= $c; if(ord($str[$i])>0x80){ $c = $str[$i].$str[$i+1]; $i++;}
    else{ $c = $str[$i]; } if($i >= $enddd){
    if(strlen($restr)+strlen($c)>$slen) break;
    else{ $restr .= $c; break; }
    }
    }
    return $restr;
    }function cn_midstr($str,$start,$len)
    {
    return cn_substr($str,$slen,$startdd);
    }
    //----------------------
    //由时间转变为时间戳整数
    //---------------------
    function GetMkTime($dtime)
    {
    if(!ereg("[^0-9]",$dtime)) return $dtime;
    $dt = Array(1970,1,1,0,0,0);
    $dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
    $dtime = str_replace("年","-",$dtime);
    $dtime = str_replace("月","-",$dtime);
    $dtime = str_replace("时",":",$dtime);
    $dtime = str_replace("分",":",$dtime);
    $dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
    $ds = explode(" ",$dtime);
    $ymd = explode("-",$ds[0]);
    if(isset($ymd[0])) $dt[0] = $ymd[0];
    if(isset($ymd[1])) $dt[1] = $ymd[1];
    if(isset($ymd[2])) $dt[2] = $ymd[2];
    if(strlen($dt[0])==2) $dt[0] = '20'.$dt[0];
    if(isset($ds[1])){
    $hms = explode(":",$ds[1]);
    if(isset($hms[0])) $dt[3] = $hms[0];
    if(isset($hms[1])) $dt[4] = $hms[1];
    if(isset($hms[2])) $dt[5] = $hms[2];
    }
      foreach($dt as $k=>$v){
       $v = ereg_replace("^0{1,}","",trim($v));
       if($v=="") $dt[$k] = 0;
      }
    $mt = @mktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]);
    if($mt>0) return $mt;
    else return time();
    }
    //获得两个时间相差的天数
    //----------------------
    function SubDay($ntime,$ctime)
    {
    $dayst = GetMkTime("2006-1-2 0:0:0") - GetMkTime("2006-1-1 0:0:0");
    $cday = ceil(($ntime-$ctime)/$dayst);
    return $cday;
    }
    //获得指定时间多少天后的时间
    //------------------
    function AddDay($ntime,$aday)
    {
    $dayst = GetMkTime("2006-1-2 0:0:0") - GetMkTime("2006-1-1 0:0:0");
    $oktime = $ntime + ($aday * $dayst);
    return $oktime;
    }//
    //由MKTime获得标准的Datatime格式
    //
    function GetDateTimeMk($mktime)
    {
    if($mktime==""||ereg("[^0-9]",$mktime)) return "";
    return strftime("%Y-%m-%d %H:%M:%S",$mktime);
    }
    //
    //由MKTime获得标准的Data
    //
    function GetDateMk($mktime)
    {
    if($mktime==""||ereg("[^0-9]",$mktime)) return "";
    return strftime("%Y-%m-%d",$mktime);
    }
    //
    //获取客户端IP
    //
    function GetIP()
    {
    if(!empty($_SERVER["HTTP_CLIENT_IP"]))
    $cip = $_SERVER["HTTP_CLIENT_IP"];
    else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
    $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if(!empty($_SERVER["REMOTE_ADDR"]))
    $cip = $_SERVER["REMOTE_ADDR"];
    else
    $cip = "无法获取!";
    return $cip;
    }
    //-------------------------------
    //获取一串中文字符的拼音
    //ishead=0 时,输出全拼音
    //ishead=1时,输出拼音首字母
    //本拼音数据库是标准的GB2312数据库,仅支持gb2312字符集
    //----------------------------------
    function GetPinyin($str,$ishead=0,$isclose=0)
    {
    global $pinyins;
    $restr = "";
    $str = trim($str);
    $slen = strlen($str);
    if($slen<2) return $str;
    if(count($pinyins)==0){
    $fp = fopen(dirname(__FILE__)."/data/pinyin.db","r");
    while(!feof($fp)){
    $line = trim(fgets($fp));
    $pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
    }
    fclose($fp);
    }
    for($i=0;$i<$slen;$i++){
    if(ord($str[$i])>0x80){
    $c = $str[$i].$str[$i+1];
    $i++;
    if(isset($pinyins[$c])){
    if($ishead==0) $restr .= $pinyins[$c];
    else $restr .= $pinyins[$c][0];
    }
    else $restr .= "_";
    }
    else if( eregi("[a-z0-9]",$str[$i]) )
    { $restr .= $str[$i]; }
    else
    { $restr .= "_";  }
    }
    if($isclose==0) unset($pinyins);
    return $restr;
    }//-----------------------
    //创建指定的目录
    //-----------------------
    function CreateDir($spath){
    $truepath = $GLOBALS["cfg_basedir"];
    $spaths = explode("/",$spath);
    $spath = "";
    foreach($spaths as $spath){
    if($spath=="") continue;
    $spath = trim($spath);
    $truepath .= "/".$spath;
    if(!is_dir($truepath)){
    if(!mkdir($truepath,0777)) return false;
    }
    }
    return true;
    }
      

  6.   

    /* 
    文件后缀名函数 
    */
    function fileExtName ($fStr)
    {
       $retval = "";
       $pt = strrpos($fStr, ".");
       if ($pt) $retval = substr($fStr, $pt+1, strlen($fStr) - $pt);
       return ($retval);
    }
      

  7.   


    function getPhoneNumber() { 
    if (isset($_SERVER['HTTP_X_NETWORK_INFO'])){ 
    $str1 = $_SERVER['HTTP_X_NETWORK_INFO']; 
    $getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1); 
    Return $getstr1; 
    }elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) { 
    $getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID']; 
    Return $getstr2; 
    }elseif (isset($_SERVER['HTTP_X_UP_SUBNO'])) { 
    $str3 = $_SERVER['HTTP_X_UP_SUBNO']; 
    $getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3); 
    Return $getstr3; 
    } elseif (isset($_SERVER['DEVICEID'])){ 
    Return $_SERVER['DEVICEID']; 
    } else { 
    Return false; 
    }

       
    /** 
    * 函数名称: getHttpHeader 
    * 函数功能: 取头信息 
    * 输入参数: none 
    * 函数返回值: 成功返回号码,失败返回false 
    * 其它说明: 说明 
    */ 
    function getHttpHeader() { 
    $str = ''; 
    foreach ($_SERVER as $key=>$val) { 
    $gstr = str_replace("&","&",$val); 
    $str.= "$key -> ".$gstr."\r\n"; 

    Return $str; 

       
    /** 
    * 函数名称: getUA 
    * 函数功能: 取UA 
    * 输入参数: none 
    * 函数返回值: 成功返回号码,失败返回false 
    * 其它说明: 说明 
    */ 
    function getUA() { 
    if (isset($_SERVER['HTTP_USER_AGENT'])) { 
    Return $_SERVER['HTTP_USER_AGENT']; 
    } else { 
    Return false; 


       
    /** 
    * 函数名称: getPhoneType 
    * 函数功能: 取得手机类型 
    * 输入参数: none 
    * 函数返回值: 成功返回string,失败返回false 
    * 其它说明: 说明 
    */ 
    function getPhoneType() { 
    $ua = $this->getUA(); 
    if($ua!=false) { 
    $str = explode(' ',$ua); 
    Return $str[0]; 
    } else { 
    Return false; 
    }
    }
       
    /** 
    * 函数名称: isOpera 
    * 函数功能: 判断是否是opera 
    * 输入参数: none 
    * 函数返回值: 成功返回string,失败返回false 
    * 其它说明: 说明 
    */ 
    function isOpera() { 
    $uainfo = $this->getUA(); 
    if (preg_match('/.*Opera.*/i',$uainfo)) { 
    Return true; 
    } else { 
    Return false; 


       
    /** 
    * 函数名称: isM3gate
    * 函数功能: 判断是否是m3gate模拟器(类似于opera的浏览器)
    * 输入参数: none 
    * 函数返回值: 成功返回string,失败返回false 
    * 其它说明: 说明 
    */ 
    function isM3gate() { 
    $uainfo = $this->getUA(); 
    if (preg_match('/M3Gate/i',$uainfo)) { 
    Return true; 
    }else { 
    Return false; 


       
    /** 
    * 函数名称: getHttpAccept 
    * 函数功能: 取得HA 
    * 输入参数: none 
    * 函数返回值: 成功返回string,失败返回false 
    * 其它说明: 说明 
    */ 
    function getHttpAccept() 

    if (isset($_SERVER['HTTP_ACCEPT'])) { 
    Return $_SERVER['HTTP_ACCEPT']; 
    } else { 
    Return false; 


       
    /** 
    * 函数名称: getIP 
    * 函数功能: 取得手机IP 
    * 输入参数: none 
    * 函数返回值: 成功返回string 
    * 其它说明: 说明 
    */ 
    function getIP(){
    $ip=getenv('REMOTE_ADDR');
    $ip_ = getenv('HTTP_X_FORWARDED_FOR');
    if (($ip_ != "") && ($ip_ != "unknown")) {
    $ip=$ip_;
    }
    return $ip;
    }
      

  8.   

    常用的函数有很多,我给你一些类别,在PHP手册看更全面(http://cn.php.net/manual/zh/):
    1、字符串处理函数 http://cn.php.net/manual/zh/ref.strings.php
    2、数据库处理函数,通常是MySQL http://cn.php.net/manual/zh/ref.mysql.php和http://cn.php.net/manual/zh/ref.pdo.php
    3、文件操作函数 http://cn.php.net/manual/zh/ref.filesystem.php
    4、语言结构(严谨的来说不是函数)http://cn.php.net/manual/zh/language.control-structures.php
    5、时间处理函数 http://cn.php.net/manual/zh/ref.datetime.php
    6、错误处理函数 http://cn.php.net/manual/zh/ref.errorfunc.php
    7、URL处理函数 http://cn.php.net/manual/zh/ref.url.php
    8、XML函数 http://cn.php.net/manual/zh/ref.domxml.php和http://cn.php.net/manual/zh/ref.libxml.php和http://cn.php.net/manual/zh/ref.xml.php和http://cn.php.net/manual/zh/ref.simplexml.php
    9、SMTP邮件函数 http://cn.php.net/manual/zh/ref.mail.php
    10、Session函数 http://cn.php.net/manual/zh/ref.session.php
    11、Cookies函数 http://cn.php.net/manual/zh/features.cookies.php
    12、数组函数 http://cn.php.net/manual/zh/ref.array.php
    13、GD图片函数 http://cn.php.net/manual/zh/ref.image.php
      

  9.   

    php手册。phper必看。里面函数很多,而且进行了分类。
      

  10.   

    ……如果是内置函数,我想不出还有比PHP手册更权威的地方……
    ……如果是自定义函数,我想不出还有什么比自己编更贴切的应用……
      

  11.   

    PHP addslashes() 函数定义和用法
    addslashes() 函数在指定的预定义字符前添加反斜杠。这些预定义字符是:单引号 (') 
    双引号 (") 
    反斜杠 (\) 
    NULL 
    语法
    addslashes(string)参数 描述 
    string 必需。规定要检查的字符串。 提示和注释
    提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。例子
    在本例中,我们要向字符串中的预定义添加反斜杠:<?php
    $str = "Who's John Adams?";
    echo $str . " This is not safe in a database query.<br />";
    echo addslashes($str) . " This is safe in a database query.";
    ?>输出:Who's John Adams? This is not safe in a database query.
    Who\'s John Adams? This is safe in a database query.
      

  12.   

    //解决文件命名的
    function Hname($Hnewsid,$Hcid){
    while(strlen($Hnewsid) < 8){
    $Hnewsid ="0".$Hnewsid;
    }
    if($Hcid < 1){
    return $Hnewsid ="news/8".$Hnewsid.".html";
    }else{
    return $Hnewsid ="news/8".$Hnewsid."_".$Hcid.".html";
    }
    }
    //返回新闻超连接
    function Hlink($Hnewsid){
    return $Hurl."cont.html?".$Hnewsid;
    }
    //新闻列表的读取
    function H_news_read_f($Hnewsmanageid){
    //解析数据
    $Hnewsmidarray=explode(",",$Hnewsmanageid);
    $i=0;
    while($i < count($Hnewsmidarray)){
    //准备数组和图片
    $row=mysql_fetch_array(mysql_query("select imgurl from newsimg where newsmanageid='$Hnewsmidarray[$i]'"));
    $harray[]=array("newsmid"=>$Hnewsmidarray[$i],$Hnewsmidarray[$i]=>array(),"Tnews"=>array(),"imgurl"=>$row["imgurl"]);
    $i++;
    unset($row);
    }
    $result=mysql_query("select newscontrolid,newsmanageid,newsid,title,ftitle,top,picnews,moveid,flag2 from newscontrol where newsmanageid in($Hnewsmanageid) and flag2!='C' order by moveid desc");
    while($row=mysql_fetch_array($result)){
    $Xnewsmanageid=$row["newsmanageid"];
    $Xnewsid=$row["newsid"];
    $Xpicnews=$row["picnews"];
    $Xtitle=$row["title"];
    $Xftitle=$row["ftitle"];
    $Xtop=$row["top"];
    $Xnewscontrolid=$row["newscontrolid"];
    $Xmoveid=$row["moveid"];
    $Xflag2=$row["flag2"];
    $i=0;
    while($i < count($harray)){
    if($harray[$i]["newsmid"] == $Xnewsmanageid){
    if($Xpicnews == "T"){
    $HXflag="Tnews";
    }else{
    $HXflag=$Xnewsmanageid;
    }
    $harray[$i][$HXflag][]=array("newsid"=>$Xnewsid,"title"=>$Xtitle,"ftitle"=>$Xftitle,"top"=>$Xtop,"newscontrolid"=>$Xnewscontrolid,"moveid"=>$Xmoveid,"flag2"=>$Xflag2);
    }
    $i++;
    }
    }
    unset($i,$HXflag,$result,$row,$Xnewsid,$Xtitle,$Xftitle,$Xtop,$Xnewscontrolid,$Xmoveid,$Xflag2);
    return $harray;
    }
    //新闻排序
    function H_news_sort_f($Hnewsarray){
    $Hi=-1;
    for($i=0;$i< count($Hnewsarray);$i++){
    if($Hnewsarray[$i]["top"] == "T"){
    $Htemp=$Hnewsarray[$i];
    for(;$i > $Hi+1;$i--){
    $Hnewsarray[$i]=$Hnewsarray[$i-1];
    }
    $Hnewsarray[$i]=$Htemp;
    $Hi=$i;
    }
    }
    return $Hnewsarray;
    }
      

  13.   

    //广告列表的读取
    function H_ad_read_f($Hadmanageid){
    //解析数据
    $Hadmidarray=explode(",",$Hadmanageid);
    $i=0;
    while($i < count($Hadmidarray)){
    //准备数组
    $harray[]=array("admid"=>$Hadmidarray[$i],$Hadmidarray[$i]=>array());
    $i++;
    unset($row);
    }
    $result=mysql_query("select adcontrolid,admanageid,addescribe,text,codetext,imgflv,codeimgflv,link,top,moveid from adcontrol where admanageid in($Hadmanageid) and flag2!='C' order by moveid desc");
    while($row=mysql_fetch_array($result)){
    $Xadcontrolid=$row["adcontrolid"];
    $Xadmanageid=$row["admanageid"];
    $Xtext=$row["text"];
    $Xaddescribe=$row["addescribe"];
    $Xcodetext=$row["codetext"];
    $Ximgflv=$row["imgflv"];
    $Xcodeimgflv=$row["codeimgflv"];
    $Xlink=$row["link"];
    $Xtop=$row["top"];
    $Xmoveid=$row["moveid"];
    $i=0;
    while($i < count($harray)){
    if($harray[$i]["admid"] == $Xadmanageid){
    $harray[$i][$Xadmanageid][]=array("adcontrolid"=>$Xadcontrolid,"admanageid"=>$Xadmanageid,"addescribe"=>$Xaddescribe,"text"=>$Xtext,"codetext"=>$Xcodetext,"imgflv"=>$Ximgflv,"codeimgflv"=>$Xcodeimgflv,"link"=>$Xlink,"top"=>$Xtop,"moveid"=>$Xmoveid);
    }
    $i++;
    }
    }
    unset($i,$Xadcontrolid,$Xadmanageid,$Xaddescribe,$Xtext,$Xcodetext,$Ximgflv,$Xcodeimgflv,$Xlink,$Xtop,$Xmoveid,$row);
    return $harray;
    }
    //广告排序
    function H_ad_sort_f($Hnewsarray){
    $Hi=-1;
    for($i=0;$i< count($Hnewsarray);$i++){
    if($Hnewsarray[$i]["top"] == "T"){
    $Htemp=$Hnewsarray[$i];
    for(;$i > $Hi+1;$i--){
    $Hnewsarray[$i]=$Hnewsarray[$i-1];
    }
    $Hnewsarray[$i]=$Htemp;
    $Hi=$i;
    }
    }
    return $Hnewsarray;
    }
    //截取中文/英文字符串 ("要截取的字符串","开始值","结束值","加点")
    function mysubstr($str, $start, $len, $flag) {
        $tmpstr = "";
    $g=0;
        $strlen =strlen($str);
    if($len>$strlen){$len=$strlen;}
    if($flag=="Y"&&$strlen>$len&&$len>4){$g=1;$len-=4;}
    if($start%2==1){$start+=1;}
        for($i = $start; $i < $len; $i++) {
            if(ord(substr($str, $i, 1)) > 0xa0) {
                $tmpstr .= substr($str, $i, 2);
                $i++;
            } else{
                $tmpstr .= substr($str, $i, 1);
    }
        }
    if($g != 0){$tmpstr.="...";}
    unset($i,$g,$str,$start,$len,$strlen);
        return stripslashes($tmpstr);
    }
      

  14.   

    //解析配置文件成数组
    function Aly_html_ary($soururl){
    if(file_exists($soururl)){
    //以读文件方式打开
    if(!($fsour = fopen($soururl, "r"))){
    return "打开权限配置文件 ".$soururl." 失败!";
    }
    while ($contents = fgets($fsour, 4096)) {
    $Htemp1 = explode("//",trim($contents));
    $Htemp2 = explode("==",trim($Htemp1[0]));
    //名称==值//注释
    $aly_file_ary[] = array(trim($Htemp2[0]),trim($Htemp2[1]),trim($Htemp1[1]));
    if(trim($Htemp2[0])=="flag"){
    $aly_list[] = $aly_file_ary;
    unset($aly_file_ary);
    }
    }
    fclose($fsour);
    return  $aly_list;
    }
    }