PHP判断远程/网络文件是否存在实例总结

 更新时间:2016年11月25日 15:46  点击:2130
如果我们要判断远程文件是否存可以使用很多方法,在php中有ile_get_contents,curl, fsockopen,fopen这些函数都可以获取远程文件哦,下面我来列出它们的实现方法。

方法一:

 代码如下 复制代码

<?php
$url = “http://www.111cn.net”;
$fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false;
echo $fileExists; //返回1,就说明文件存在。
?>

方法二:

 代码如下 复制代码

//php判断远程文件是否存在
function url_exists($url){
    $handle=curl_init($url);
    if(false===$handle){
  return false;
    }
    curl_setopt($handle,CURLOPT_HEADER,false);
    curl_setopt($handle,CURLOPT_FAILONERROR,true);
    curl_setopt($handle,CURLOPT_NOBODY,true);
    curl_setopt($handle,CURLOPT_RETURNTRANSFER,false);
    $connectable=curl_exec($handle);
 
    curl_close($handle);   
    return $connectable;
}


方法三

 代码如下 复制代码


function file_exists($url) {
$curl = curl_init($url);
// 不取回数据
curl_setopt($curl, CURLOPT_NOBODY, true);
// 发送请求
$result = curl_exec($curl);
$found = false;
 // 如果请求没有发送失败
if ($result !== false)
{ // 再检查http响应码是否为200
 }

法一无论图片在不在都是返回FALSE;
方法二windows下可行,LINUX下无论图片在不在都返加TRUE;
方法三应该是最合适的

 代码如下 复制代码


  $url = "http://www.111cn.net";
 
    $info = parse_url($url);
    $fp = fsockopen($info['host'], 80,$errno, $errstr, 30);
    fputs($fp,"GET {$info['path']} HTTP/1.1rn");
    fputs($fp, "Host: {$info['host']}rn");
    fputs($fp, "Connection: closernrn");
    $headers = array();
    while(!feof($fp)) {
    $line = fgets($fp);
    if($line != "rn") {
    $headers[] = $line;
    }else {
    break;
    }
    }
 
    echo "<pre>";
    print_r($headers);

方法四

 代码如下 复制代码

  <?php
    $url = 'http://www.111cn.net';
 
    if( @fopen( $url, 'r' ) )
    {
        echo 'File Exits';
    }
    else
    {
        echo 'File Do Not Exits';
    }
    ?>

本文章来给各位同学介绍Yii -AutoComplete 表单自动提示实例,有需要了解的同学可进入参考。


CJuiAutoComplete 在用户输入时可以根据用户输入的前几个字符自动提示用户可以输入的文字。它封装了 JUI autocomplete插件。

基本用法如下:


controller层代码:

——————————————-

 代码如下 复制代码

<?php

class SiteController extends Controller

{

 public function actionIndex()

 {

 $data=array(‘Nanjing’, ‘Beijing’, ‘Perth’,

‘Chicago’,'Paris’,'Pengnai’,'Sydney’);

 $this->render(‘index’, array(

 ‘data’ => $data,

 ));

 }

}


view层代码:

——————————————————

 代码如下 复制代码

<?php

$this->widget(‘zii.widgets.jui.CJuiAutoComplete’, array(

‘name’=>’city’,

’source’=>$data,

‘options’=>array(

 ‘minLength’=>’1′,//设置文本框中有最少有几个字符的时候开始提示

 ),

 ‘htmlOptions’=>array(

 ’style’=>’height:20px;’

 ),

));

?>

在php中读取文件我们需要使用file_get_contents或fopen来打开文件然后再读取了,file_get_contents函数读文件比fopen要方便,写文件需要fopen函数与file_put_contents或fwrite合作才可以实例下面我来介绍下。

php写文件的方法

实例一

 代码如下 复制代码
$filename = 'test.txt';
$filename = dirname ( __FILE__ ) . '/' . $filename;
if (file_exists ( $filename )) {
    if (! is_writable ( $filename )) {
        exit('is not writable');
    }
    $handle = fopen ( $filename, "a+b" );
    $content = 'this is test words';
    $content .= "n";
    fwrite($handle, $content);
    fclose ( $handle );
} else {
    exit('file is not exists');
}

实例二

 代码如下 复制代码

$filename = 'test.txt';
$filename = dirname ( __FILE__ ) . '/' . $filename;
if (file_exists ( $filename )) {
    if (! is_writable ( $filename )) {
        exit('is not writable');
    }
    $content = 'this is test words';
    $content .= "n";
    file_put_contents($filename, utf8_encode($content)); 
} else {
    exit('file is not exists');
}


php读取文件

实例一

 代码如下 复制代码

$filename = 'test.txt';
        $filename = dirname ( __FILE__ ) . '/' . $filename;
        if (file_exists ( $filename )) {
            if (! is_readable ( $filename )) {
                exit('is not readable');
            }
            $contents = file_get_contents($filename);
            $contents = explode("n", $contents);
            print_r($contents);
        } else {
            exit('file is not exists');
        }

实例二

 代码如下 复制代码

$filename = 'test.txt';
$filename = dirname ( __FILE__ ) . '/' . $filename;
if (file_exists ( $filename )) {
    if (! is_readable ( $filename )) {
        exit('is not readable');
    }
    $handle = fopen ( $filename, "rb" );
    $contents = fread($handle, filesize ($filename));
    //$contents = stream_get_contents($handle); // 也可以用方法替换上一行
    $contents = explode("n", $contents);
    fclose ( $handle );
    print_r($contents);
} else {
    exit('file is not exists');
}

今天给大家转一个不错的数组平均值算法函数,这个主要是针对二维数据值的算法,各位有需要了朋友可参考。

计算数组平均值 二维数组平均值计算 分组计算平均值

 代码如下 复制代码

$array = array(
    array('class' => 'a', 'value' => 3),
    array('class' => 'a', 'value' => 4),
    array('class' => 'b', 'value' => 5),
    array('class' => 'b', 'value' => 6)
)

这样的数组可分别以 class键值分组计算平均值
也可以单独计算总的平均值,用法如下

 代码如下 复制代码

array_avg($array, 'class');//返回二维数组
array_avg($array);//返回一维数组
// 计算平均值    返回一维数组
// 参数$avgby 按照指定字段算平均值  返回二维数组
private function array_avg($array, $avgby = NULL) {
    $array_avg = array ();
    $number = count ( $array );
    foreach ( $array as $key => $value ) {
        if ($avgby) {
            $avg_key = $value[$avgby];
            $array_avg[$avg_key]['count'] ++;
            foreach ( $value as $k => $v ) {
                $array_avg[$avg_key][$k] += $v;
            }
        } else {
            foreach ( $value as $k => $v ) {
                $array_avg[$k] += $v;
            }
        }
    }
    $array = array ();
    foreach ( $array_avg as $key => $value ) {
        if ($avgby) {
            foreach ( $value as $k => $v ) {
                $array[$key][$k] = $v / $value['count'];
            }
        } else {
            $array[$key] = $value / $number;
        }
    }
    return $array;
}

在php中我们经常会需要把字符串中的超级链接地址与url给过滤掉,下面我来利用php正则功能实现替换掉网页中所有超链接与url实例,各位朋友可参考。

正则替换掉网页中所有超链接

 代码如下 复制代码

<?php
$content = file_get_contents('test.html');
$url = 'http://www.111cn.net';  //要换成的新网址
$preg = '/[s]href=("|')[S]*("|')/i';
$replace = ' href="' . $url . '"';
$content = preg_replace($preg, $replace, $content);  //正则替换
create_log('newhtml', $content);  //生成新文件
?>

下面是写文件操作

 代码如下 复制代码

function create_log($filename, $text) {
       if ( strtolower(substr($filename, -4)) != 'html' ){
              $filename .= '.html';
       }
       $filename = dirname ( __FILE__ ) . '/' . $filename;
       if (!file_exists ( $filename )) {
              exec( 'touch '. $filename);
              exec( 'chmod 777 '. $filename);
       }
       $handle = fopen ( $filename, "w+b" );
       $text .= "rn";
       fwrite($handle, $text);
       fclose ( $handle );
}

下面我一个采集的功能

 代码如下 复制代码

$url ='http://www.111cn.net';
$body=@file_get_contents($url);
preg_match_all('/href=['"]?([^'"]*)['"]?>(.*)/i',$body,$b);
$nums = array();
foreach($b[1] as $u){
  if(in_array($u,$nums)){
  continue;
  }
  $nums[]=$u;
  $title=strip_tags($u);
  echo $title."</br>";
}

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • 一个奇葩的最短的 IE 版本判断JS脚本

    使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:复制代码 代码...2014-05-31
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • c# 判断是否为空然后赋值的4种实现方法

    下面小编就为大家分享一篇c# 判断是否为空然后赋值的4种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29