精华内容
下载资源
问答
  • PHP offers three different APIs to connect to MySQL. Below we show the APIs provided by the mysql, mysqli, and PDO extensions. Each code snippet creates a connection to a MySQL server running on "exam...

    PHP offers three different APIs to connect to MySQL. Below we show the APIs provided by the mysql, mysqli, and PDO extensions. Each code snippet creates a connection to a MySQL server running on "example.com" using the username "user" and the password "password". And a query is run to greet the user.

    PHP 提供了三种 API 来连接 Mysql 数据库,下面展示的就是由三种扩展(1.mysql; 2.mysqli; 3.PDO)提供的 连接API。

    每一个代码片段都创建了一个到服务器的连接,域名为"example.com",用户名为"user",密码"password",每一个执行都向用户打了一声招呼。

    // mysqli

    $mysqli = new mysqli("example.com", "user", "password", "database");

    $result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");

    $row = $result->fetch_assoc();

    echo htmlentities($row['_message']);

    // PDO

    $pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');

    $statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");

    $row = $statement->fetch(PDO::FETCH_ASSOC);

    echo htmlentities($row['_message']);

    // mysql

    $c = mysql_connect("example.com", "user", "password");

    mysql_select_db("database");

    $result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");

    $row = mysql_fetch_assoc($result);

    echo htmlentities($row['_message']);

    ?>

    官网建议:

    Recommended API

    It is recommended to use either the mysqli or PDO_MySQL extensions. It is not recommended to use the old mysql extension for new development, as it was deprecated in PHP 5.5.0 and was removed in PHP 7. A detailed feature comparison matrix is provided below. The overall performance of all three extensions is considered to be about the same. Although the performance of the extension contributes only a fraction of the total run time of a PHP web request. Often, the impact is as low as 0.1%.

    推荐的使用的 API

    推荐使用 mysqli 或者是 PDO_MySQL 扩展。对于新开发的项目来说,不推荐使用旧的 mysql 扩展,因为其在 PHP 的5.5.0 版中,已经被弃用了,而在 PHP7 中直接被移除了。下面提供了一个详细的功能对比表格。三个扩展的总体性能都差不多。在一个 PHP web 请求的运行时间内,扩展所占的影响只有非常小的一部分,差不多为 0.1%。

    Itemext/mysqliPDO_MySQLext/mysqlPHP version introduced5.05.12.0

    Included with PHP 5.xYesYesYes

    Included with PHP 7.xYesYesNo

    Development statusActiveActiveMaintenance only in 5.x; removed in 7.x

    LifecycleActiveActiveDeprecated in 5.x; removed in 7.x

    Recommended for new projectsYesYesNo

    OOP InterfaceYesYesNo

    Procedural InterfaceYesNoYes

    API supports non-blocking, asynchronous queries with mysqlndYesNoNo

    Persistent ConnectionsYesYesYes

    API supports CharsetsYesYesYes

    API supports server-side Prepared StatementsYesYesNo

    API supports client-side Prepared StatementsNoYesNo

    API supports Stored ProceduresYesYesNo

    API supports Multiple StatementsYesMostNo

    API supports TransactionsYesYesNo

    Transactions can be controlled with SQLYesYesYes

    Supports all MySQL 5.1+ functionalityYesMostNo

    展开全文
  • <p>Even with the crude solution of making the server of siteA http request my server (siteB) to get a one-time use token in order to be validated on certificate.php, they could just use siteA to grab ...
  • ubuntu安装php链接服务器需要php扩展:sudo apt-get install libssh2-1 php-ssh2在Windows环境下安装下载 php extension ssh2下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/根据自己PHP的版本...

    8accc748f8b524c4a66c4a055a9052c8.png

    安装PHP SSH2扩展

    ### ubuntu安装php链接服务器需要php扩展:sudo apt-get install libssh2-1 php-ssh2

    在Windows环境下安装

    下载 php extension ssh2下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

    根据自己PHP的版本去下载,我使用的WAMPSERVER2.5(64bit),PHP版本为5.5.12,是线程安全的,

    所以下载的是php_ssh2-0.12-5.5-ts-vc11-x64.zip

    1、解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。

    2、将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。

    3、将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份

    4、php.ini中加入 extension=php_ssh2.dll

    5、重启apache,即可使用php执行ssh连接操作了。

    6、查看phpinfo(),是否有显示php_ssh2扩展加载成功。

    在linux环境下安装

    PHP SSH2扩展需要的依赖库

    openssl: 加密算法集合,C语言实现

    libssh2: ssh2协议库库,C语言实现

    PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数

    依赖关系:PECL/ssh2 –> libssh2 –> openssl

    安装需要的扩展包

    安装libssh2wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz

    tar zxf libssh2-1.4.2.tar.gz

    cd libssh2-1.4.2

    ./configure && make && make install

    安装PECL/ssh2wget http://pecl.php.net/get/ssh2-0.11.3.tgz

    cd ssh2-0.11.3

    phpize (如果报错命令没有找到,apt-get install php5-dev)

    ./configure —with-ssh2 && make && make install

    修改php配置信息cd /etc/php5/cgi

    vim php.ini

    添加项:extension=/usr/lib/php5/20090626/ssh2.so

    ssh2.so是编译ssh2时得到的模块,上面是模块的位置。cd /etc/php5/cli

    vim php.ini

    添加项:extension=/usr/lib/php5/20090626/ssh2.so

    ssh2.so是编译ssh2时得到的模块,上面是模块的位置。

    重启web服务器/etc/init.d/lighttpd restart

    查看是否加载了ssh2[root@localhost ~]php -m | grep s

    php代码使用public function actionTestServer()

    {

    //登陆linux的ssh2用户名

    $ssh_user='root';

    //登陆linux的密码

    $ssh_pwd='';

    //默认端口号22

    $ssh_port='22';

    //服务器IP地址

    $ssh_host='120.77.62.13';

    //先测试拓展是否安装并开启

    if(!function_exists("ssh2_connect")){

    exit('SSH扩展没有安装或者没有安装成功');

    }

    //建立ssh2连接

    $ssh2 = ssh2_connect($ssh_host, $ssh_port);

    if(!$ssh2){

    exit('连接服务器失败');

    }else{

    echo '成功连接上了服务器';

    }

    //连接成功后进行密码验证,没验证无法进行其他操作。

    if(!ssh2_auth_password( $ssh2, $ssh_user, $ssh_pwd )){

    return false;

    }

    //shell脚本语句

    $e="/etc/init.d/nginx restart >> /tmp/nginx_restart_".date('Ymd').".log";

    //通过ssh2_exec执行语句

    ssh2_exec($ssh2, $e);

    }

    更多PHP相关知识,请访问PHP中文网!

    展开全文
  • 1、第一种 使用 get_headers(PHP 5, PHP 7)get_headers — 取得服务器响应一个 HTTP 请求所发送所有标头参数值url必需。目标URLformat可选。如果将可选 format 参数设为 1,则 get_headers() 会解析相应信息并...

    1、第一种   使用 get_headers

    (PHP 5, PHP 7)

    get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头

    参数

    url

    必需。目标URL

    format

    可选。如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。

    返回值

    返回包含有服务器响应一个 HTTP 请求所发送标头的索引或关联数组,如果失败则返回 FALSE。

    $url = "https://www.baidu.com/link?url=32j8_-sKSyO_5cpK0AQHwbD1DW3u8nXucwjWtAKmODiM5a9Z1BF2CHWqcmMBKwo5&wd=&eqid=e37d71b8000f7d15000000045f923b42";

    $headers = get_headers($url, 1);

    if (isset($headers['Location'])) {

    echo $headers['Location'];

    }

    2、第二种  使用curl

    $url = "https://www.baidu.com/link?url=32j8_-sKSyO_5cpK0AQHwbD1DW3u8nXucwjWtAKmODiM5a9Z1BF2CHWqcmMBKwo5&wd=&eqid=e37d71b8000f7d15000000045f923b42";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_VERBOSE, true);

    curl_setopt($ch, CURLOPT_HEADER, true);

    curl_setopt($ch, CURLOPT_NOBODY, true);

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch, CURLOPT_TIMEOUT, 20);

    curl_setopt($ch, CURLOPT_AUTOREFERER, true);

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //是否抓取跳转后的页面

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 不从证书中检查SSL加密算法是否存在

    $res = curl_exec($ch);

    $info = curl_getinfo($ch);

    $retURL = $info['url']; // 跳转后的 URL 信息

    curl_close($ch);

    有需要的朋友拿走不谢,记得点赞收藏 关注不迷路哦

    展开全文
  • 前几天刺在我们maillist发了一个老外写文章,大意是可以用php来实现数据劫持和转发。...地址是在:http://www.secforce.co.uk/media/presentations/OWASP_Abusing_PHP_sockets.pdf。其实关于这个原...

    前几天刺在我们的maillist发了一个老外写的文章,大意是可以用php来实现数据的劫持和转发。我瞄了一下,确实可行,于是今天抽出了以前用来扯淡的时间,写了段代码验证了一下想法。老外的原文是一个PDF,有兴趣看的可以看看。地址是在:http://www.secforce.co.uk/media/presentations/OWASP_Abusing_PHP_sockets.pdf。其实关于这个的原理,我记得很早很早之前flashsky就在xfocus上面贴过通过SO_REUSEADDR实现端口重复绑定的,mix还写过一个 guest权限嗅探密码的。我这里比较不同的是用php实现的,可以在webshell里面用,当然我没有测试过,我没shell。

    需要注意的是,这个东西和以前的《PHP下实现端口复用/劫持》是完全不一样的,那个文章可以在这里找到:http://www.west999.com/info/html/wangluobiancheng/Phpbiancheng/20080224/22439.html。至于为什么不一样,我就不说了。

    代码我注释得很详细,个人觉得写得还不错,不细说。这里大概说一下技术上的难点。首先是在web里面,没有多线程也没有多进程,但是每一个新连接进来就要去处理,应该怎么做?显然不能顺序执行,因为光accept那里就会被阻塞住的,而且后面每一个session也需要分别处理的。还好查手册发现经典的socket_select函数可用,有这个就好说了,专业实现多路复用的。

    PHP代码如下,有详细注释。blog贴的,所以代码可能会掉些东西,其他的支持我就不提供了,看代码:

    // 构造函数function select($sockets){$this->sockets = array();

    foreach($sockets as $socket){$this->add($socket);}}

    function add($add_socket){//array_push($this->sockets, $add_socket);$this->sockets[] = $add_socket;}

    // 利用临时数组来删除数组中的元素function remove($remove_socket){$tmp_sockets = array();

    foreach($this->sockets as $socket){if($remove_socket != $socket){$tmp_sockets[] = $socket;}}

    $this->sockets = $tmp_sockets;}

    // 检查socket数组是否可读,传入超时时间,返回socket数组function can_read($timeout){$read = $this->sockets;socket_select( $read, $write = NULL, $except = NULL, $timeout );return $read;}

    // 检查socket数组是否可写,传入超时时间,返回socket数组function can_write($timeout){$write = $this->sockets;socket_select( $read = NULL, $write, $except = NULL, $timeout );return $write;}}

    // 网页不超时set_time_limit(0);

    // 即时输出数据,不缓冲ob_end_clean();ob_implicit_flush(true);

    if( !isset($_GET["listen_ip"]) ){exit;}if( $_GET["listen_ip"] == "" ){exit;}

    $listen_ip = $_GET["listen_ip"];$listen_port = 80;

    // 建立socket$listen_sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    // 设置重复绑定socket_set_option($listen_sock, SOL_SOCKET, SO_REUSEADDR, 1);

    // 明确指定绑定IP地址,优先获取数据socket_bind($listen_sock, $listen_ip, $listen_port);

    // 开始监听socket_listen ($listen_sock);

    echo "listen on ".htmlentities($listen_ip)." :".$listen_port."
    ";

    // 创建socket数组,使用select来轮询$check_socks = array($listen_sock);

    // 映射客户端socket和服务端socket// $socket_maps1将客户端socket作为key// $socket_maps2将服务端socket作为key// 以内存换速度,并且方便下面的搜索$socket_maps1 = array( );$socket_maps2 = array( );

    // 实例化select类$select = new select( $check_socks );

    while(true){/*print_r( $socket_maps );print "
    ";*/// select轮询,超时2秒foreach ($select->can_read(1) as $socket){// listen_sock可读,说明有人连接上来了if( $socket == $listen_sock ){// 接受新连接,并加入到轮训数组$new_client = socket_accept($listen_sock);$select->add($new_client);

    socket_getpeername($new_client, $ip, $port);echo "New client connected: $ip, $port
    ";

    // 建立到真实服务器的socket$server_sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);socket_connect($server_sock,"127.0.0.1", $listen_port);

    // 建立真实服务器socket和真实客户端socket之间的映射关系$socket_maps1[$new_client] = $server_sock;$socket_maps2[$server_sock] = $new_client;

    // 添加到select轮询中$select->add($server_sock);

    // $listen_sock的可读数据是因为有新连接,已经处理了。暂时去掉,因为下面开始处理数据转发//select->remove( $listen_sock );}

    // 其他socket可读,表示有数据需要中转else{// 读取数据,失败则从轮询socket中删除,并关闭socket$client_data = @socket_read($socket, 1024, PHP_NORMAL_READ);if ($client_data === false){socket_close( $socket );$select->remove( $socket );echo "client disconnected.
    ";

    continue;}

    // 如果socket在$socket_maps1的key中,说明是从客户端读到了数据if( in_array( $socket, array_keys($socket_maps1)) ){//echo "readed from client.
    ";if( ! socket_write( $socket_maps1[$socket], $client_data ) ){socket_close( $socket );socket_close( $socket_maps1[$socket] );$select->remove( $socket );$select->remove( $socket_maps1[$socket] );print "Write to server error.
    ";}print htmlentities($client_data)."
    ";}// 否则如果socket在$socket_maps2的key中,说明是从真正的web服务器读到了数据elseif( in_array( $socket, array_keys($socket_maps2) ) ){//echo "readed from server.
    ";if( ! socket_write( $socket_maps2[$socket], $client_data ) ){socket_close( $socket );socket_close( $socket_maps2[$socket] );$select->remove( $socket );$select->remove( $socket_maps2[$socket] );print "Write to client error.
    ";}print htmlentities($client_data)."
    ";}}}}

    ?>

    这个东西有什么作用?自由发挥。也许你有一个webshell,但是却想知道同一个服务器上面别人网站的密码……我是在windows xp+apache测试的,据我所知windows2003默认已经不准重复绑定端口了。

    小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

    免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

    展开全文
  • ?前几天刺在我们maillist发了一个老外写文章,大意是可以用php来实现数据劫持和转发。...地址是在:http://www.secforce.co.uk/media/presentations/OWASP_Abusing_PHP_sockets.pdf。其实关于这个...
  • 最近工作中遇到一个需求,将app下载地址变成短链接进行推广,索性就研究了下yourls 。发现这个玩意功能挺强大,不但可以批量生成自己地址,还可以管理,统计每个短地址点击数量,还可以提供api接口。最重要...
  • 今天碰到这问题了,所以就写出来了,之前在网上搜索,也没有一个很好贴子,所以自己就贴下了. SQL Server 创建链接服务器至MYSQL <br />1,在SQL SERVER服务器上安装MYSQL ODBC驱动; ...
  • 最近工作中遇到一个需求,将app下载地址变成短链接进行推广,索性就研究了下yourls 。 发现这个玩意功能挺强大,不但可以批量生成自己地址,还可以管理,统计每个短地址点击数量,还可以提供api接口。 最...
  • 最近在用Zend Framework 搭建网站时发现了如下两个问题: 1. 当web 服务器不支持mod_rewrite 时怎么办呢,在网上百度了一下发现...这样一来可知,当web 服务器不支持mod_rewrite 时页面的链接地址是必须要带有'in
  • 最近遇到“SQL如何链接远程MySQL”这个问题,现在问题终于解决,特把方法贴出来:(我所用操作系统是Win7,数据库是SQL2005。)1、在SQL SERVER服务器上安装MYSQL ODBC驱动;...
  • HTML一般在前台页面与用户进行交互,后台可以使用PHP搭建服务器,实现数据的处理。现在我们来实现使用前台的表单获取用户输入,PHP进行...(3)获取PHP服务器的链接地址,也就是你运行程序后的链接地址,等下在HTML中...
  • 这个话题说简单简单,也难也难,因为这跟团队管理,配合等都有直接关系,所以php项目部署方案也都会有很多不同。我这里简单记录一些,大家可以选择适合自己使用。后面几个都能搜到,本来发了一篇带链接的,...
  • 这里附上阿里云云翼计划链接阿里云云翼计划,学生党还是很划算,当然其它云服务也会有学生优惠,适合自己才是最好。我购买了阿里云,以下配置方法适用于阿里云服务。购买完服务器就可以接下来操作了。我们记...
  • 在这里介绍一次因为更改网站地址而引发服务器IO读取速度,网络流入流出速度暴涨10倍解决经历。 环境:Ubuntu + Nginx + php-cgi + Wordpress 事情是这样,现在网站使用wordpress搭建,网址为...
  • 文件同步PHP版V1.0,同步服务器文件

    热门讨论 2012-01-10 15:33:01
    文件同步 V1.0 本程序用于同步两台服务器之间的文件系统,...使用方法:将本程序放在两台服务器的根目录下,登陆其中一台服务器的filesync.php,然后输入另一台服务器中filesync.php的链接地址,勾选同步类型并点击同步.
  • 普通链接方式 //服务器地址,用户名,密码 $con = mysql_connect("http://localhost:8080/", "a239382i", "2000"); //设置字符集为utf8 mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER ...
  • 由于开发环境使用的是lighttpd服务器,我本机环境使用的是Apache配置,导致部署到开发机后,所有的链接地址全部跳转到首页。 分析了下,index.php/controller/function ,controller没有生效,应该是路由分发的缘故。...
  • 本文链接:http://www.openphp.cn/index.php/article/2/12/index.html需要下载几个软件包: 1.... PHP5 RC3  PHP 下载地址为: http://www.php.net/downloads.php ,找到如下图位置,下载方框中
  • 对于程序员来说,项目中邮件发送是常用一个功能, 我在这不讲源码,只讲如何能快速地实现.phpMailer 是一个非常强大 php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常...
  • 本文实例讲述了php实现异步将远程链接上内容(图片或内容)写到本地方法。分享给大家供大家参考,具体如下: /** * 异步将远程链接内容(图片或内容)写到本地 * * @param unknown $url * 远程地址 * @param...
  • 在暑假时候想玩玩树莓派,就买了一块树莓派3B+,结果买回来也没太玩就放在宿舍吃灰,最近突然对网站很感兴趣,于是就在网上查找资料去搭建了这个web服务器,它是使用nginx+PHP7+typecho组成的服务器。...
  • 原文地址 ... 前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第6篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发
  • header("Content-type:text/html;charset=utf-8"); $servername = "localhost";//服务器地址 $username = "root";//帐号 $password = "Xiaowu34!@#";//密码 $dbname = "job_qybk";//表名 $conn...
  • 用户在浏览器地址栏输入地址并回车。 浏览器查找系统hosts文件,查找主机名对应IP。 返回结果:查询成功进行第6步,否则进行第4步。 hosts没有查到IP,查询DNS。 返回结果:查询成功,进行第5步,否则浏览器报告链接...
  • 括号里面参数的意思:1.localhost——IP地址,localhost是本机的意思,如果需要连接别的服务器,那么就需要输入要连接的服务器的IP地址2.root——用户名,要连接到的服务器的用户名,创建服务器时保存的用户名是什么...
  • 注:push.php开启后,页面端websocket中ws的链接与端口要与服务器地址以及push.php中websocket的端口一致,push.php中text协议的端口要与data.php中tcp协议端口一致。由于守护进程一般不用exit或die来截断,需要调试...
  • 这里写图片描述 自己在腾讯云购买了个一年的服务器,及mysql数据库,想尝试做个自己网站,首先需要在服务器上搭建web服务器运行环境,网上找了很多,就这篇博客比较靠谱: 博客链接地址:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 675
精华内容 270
关键字:

php服务器的链接地址