PHP是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。
在浏览器中输入:https://windows.php.net/download#php-8.1,选择下载window系统下php8.1版本
下载C++支持最新版本https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170
在phpinfo()里查看到mysqli,表示连接mysql数据库驱动存在
php开启短标签:php.ini >> short_open_tag = On
php显示错误提示:php.ini >> display_errors = On
PHP变量可不定义设置:error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
mysqli 是一个改进的 MySQL 扩展。:php.ini >> extension=mysqli
程序运行最大时间(单位秒):php.ini >> max_execution_time = 300
进行cmd>>inetmgr>>通过Web 平台安装相应程序
Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。
教程:可直接下载composer.exe文件安装 https://doc.thinkphp.cn/v8_0/setup.html
或
进入php目录 >> C:\Program Files\iis express\PHP\v7.2 >> 输入cmd >>
第一步:php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
第二步:php composer-setup.php
第三步:php -r "unlink('composer-setup.php');"
第四步:在php目录里创建一个文件为composer.bat,文件里内容为 @php "%~dp0composer.phar" %*
输入在cmd里输入 composer 就可以
注意:如果php安装在C盘,需要以管理员方式打开cmd,然后使用 cd C:\Program Files\iis express\PHP\v7.2 进入php目录
php.ini文件里设置:extension=openssl
extension_dir = "ext"
extension=fileinfo
extension=curl
extension=pdo_mysql
extension=gd
extension=mbstring
composer.phar 移动到 C:\Program Files\iis express\PHP\8.1\ 目录下
更新更新版本:cmd >> composer self-update
换国内源:cmd >> composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
查看源地址:cmd >> composer config -g -l
php运行js代码有两种方法,一种是node方式,另一种是v8js方式,这种方式暂时没有测试通过node方法代码
node -e 运行js内容测试通过,但是会有一些出错,并且返回的是字符串类型的文本
<?php
// JavaScript脚本
$script = "console.log('Hello, World!');";
$script =file_get_contents('1.js');
$script = str_replace('"', '\"', $script);
$script = str_replace("\n", ";", $script);
// 使用exec函数执行JavaScript脚本
$result = exec("node -e \"" . $script . "\"");
// 输出结果
echo $result;
echo(gettype($result))
?>
js文件 1.js
var a="abc";
console.log("'a"+a+"a'");
在 php 里调用 xiyueta.js库,使用 asp.xiyueta.min.js 文件,它是把代码写到一个js文件里,然后使用shell_exec来调用node来运行js文件在debug目录里导入xiyueta库
<?php
// 指定要写入的文件路径
$file_path = "debug/example.js";
// 要写入文件的数据
$data= "const xiyueta = require('xiyueta') \n";
$data.="xiyueta.load('qq:313801120
') \n";
$data.=" console.log( xiyueta('p').text() ) \n";
// 以写入模式打开文件
$file = fopen($file_path, "w") or die("无法打开文件!");
// 将数据写入文件
fwrite($file, $data);
// 关闭文件
fclose($file);
$output=shell_exec("node ".$file_path);
echo($output);
php里连接sqlserver数据库
下载ODBC windows驱动,网址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=36434
下载php 连接sqlserver 的.dll,网址:https://learn.microsoft.com/zh-cn/sql/connect/php/release-notes-php-sql-driver?view=sql-server-ver15#previous-releases
1.下载ODBC windows驱动 >> 点击安装 >> next >>完成
2.下载php 连接sqlserver 的.dll
对应php版本的驱动复制到ext里
修改php.ini配置文件,把dll加入到里面
extension=php_pdo_sqlsrv_72_nts_x86.dll
extension=php_sqlsrv_72_nts_x86.dll
extension=php_pdo_sqlsrv_72_nts_x64.dll
extension=php_sqlsrv_72_nts_x64.dll
phpinfo()里看到有pdo_sqlite,表示sqlserver驱动安装有了
php连接sqlserver数据库,和打开表
<?php
$serverName = "localhost";
$connectionInfo = array( "Database"=>"webdata", "UID"=>"sa", "PWD"=>"youpass");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
if( $conn === false ) {
echo "无法连接。";
die(var_dump(sqlsrv_errors(), true));
}
$sql = "SELECT * FROM xy_webcolumn";
$res = sqlsrv_query($conn, $sql);
if ($res === false) {
die(print_r(sqlsrv_errors(), true));
}
while ($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC)) {
echo "ID: " . $row["id"] . " - columntype: " . $row["columntype"] . "<br>";
}
登录并获得信息
<?php
/**
* 网站数据采集示例
* 这个脚本演示了如何登录网站并获取页面内容
*/
// 引入Curl_HTTP_Client类
require_once('curl_http.php');
// 创建一个新的Curl_HTTP_Client实例 - 禁用调试模式
$curl = new Curl_HTTP_Client(false);
// 设置浏览器代理参数数组 - 模拟不同的浏览器访问
$useragent = array(
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)', // IE8浏览器
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)', // IE7浏览器
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', // IE6浏览器
'Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1', // Firefox浏览器
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36' // Chrome浏览器
);
// shuffle函数会随机打乱数组顺序
shuffle($useragent);
// 取打乱后数组的第一个元素作为本次请求使用的浏览器标识
$agent = $useragent[0];
// 设置HTTP请求头信息
$headers = array(
'X-Apple-Tz: 0', // 设置时区
'X-Apple-Store-Front: 143444,12', // Apple相关参数
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', // 接受的内容类型
'Accept-Encoding: gzip, deflate', // 接受的编码方式
'Accept-Language: en-US,en;q=0.5', // 接受的语言
'Cache-Control: no-cache', // 缓存控制
'Content-Type: application/x-www-form-urlencoded; charset=utf-8', // 内容类型和字符集
'User-Agent: ' . $agent, // 使用随机选择的浏览器标识
'X-MicrosoftAjax: Delta=true', // Ajax请求标识
'Origin: http://qqshow', // 请求来源
'Host: qqshow' // 目标主机
);
// 设置cookie文件以保持会话状态
$cookie_file = tempnam(sys_get_temp_dir(), 'curl_cookie_');
$curl->store_cookies($cookie_file);
// 设置请求头和浏览器标识
$curl->set_header($headers);
$curl->set_user_agent($agent);
// 设置登录URL和引用页
$login_url = "http://qqshow/3gxl/login.asp";
$curl->set_referrer($login_url);
// 获取登录页面
$login_page = $curl->fetch_url($login_url);
if ($login_page) {
// 设置登录POST数据
$post_data = array(
'act' => 'checkLogin',
'logname' => '2233',
'logpass' => '123456'
);
// 发送登录请求
$login_result = $curl->send_post_data($login_url, $post_data);
// 检查是否登录成功
if ($login_result && (strpos($login_result, "登录成功") !== false ||
strpos($login_result, "success") !== false ||
strpos($login_result, "欢迎您") !== false)) {
// 获取用户信息页面
$user_result = $curl->fetch_url("http://qqshow/3gxl/about.asp");
// 使用正则表达式提取金币值
if ($user_result && preg_match('/金币:([0-9亿\.万]+)/u', $user_result, $matches)) {
echo '金币为:'.$matches[1];
}
} else {
echo "登录失败";
}
}
// 清理临时cookie文件
if (file_exists($cookie_file)) {
unlink($cookie_file);
}
// 关闭curl连接
$curl->close();
?>