php保存远程文件及抓URL数据

对某学校威海分校的一次检测 ISCC比赛归来,被大神虐,总有一些蛋疼,于是拿自己学校泄愤一下,找到了威海分校的主页,拿wvs一顿狂扫,整理结果如下。 后台的地址(均尝试过万能密码,怀疑那些一式万能密码就成功地人是什么人品): 校长信箱的后台地址 http://www.hitwh.edu.cn/box/old/login.htm 网站使用了FCMS,后台有两个,默认密码分别是admin8  admin8(后 阅读详情
//保存远程文件
function saveRemoteImg($sUrl){
	global $upExt,$maxAttachSize;
	$reExt='('.str_replace(',','|',$upExt).')';
	if(substr($sUrl,0,10)=='data:image'){//base64编码的图片,可能出现在firefox粘贴,或者某些网站上,例如google图片
		if(!preg_match('/^data:image\/'.$reExt.'/i',$sUrl,$sExt))return false;
		$sExt=$sExt[1];
		$imgContent=base64_decode(substr($sUrl,strpos($sUrl,'base64,')+7));
	}
	else{//url图片
		if(!preg_match('/\.'.$reExt.'$/i',$sUrl,$sExt))return false;
		$sExt=$sExt[1];
		$imgContent=getUrl($sUrl);
	}
	if(strlen($imgContent)>$maxAttachSize)return false;//文件体积超过最大限制
	$sLocalFile=getLocalPath($sExt);
	file_put_contents($sLocalFile,$imgContent);
	//检查mime是否为图片,需要php.ini中开启gd2扩展
	$fileinfo= @getimagesize($sLocalFile);
	if(!$fileinfo||!preg_match("/image\/".$reExt."/i",$fileinfo['mime'])){
		@unlink($sLocalFile);
		return false;
	}
	return str_replace('../','/',$sLocalFile);
}
//抓URL数据
function getUrl($sUrl,$jumpNums=0){
	$arrUrl = parse_url(trim($sUrl));
	if(!$arrUrl)return false;
	$host=$arrUrl['host'];
	$port=isset($arrUrl['port'])?$arrUrl['port']:80;
	$path=$arrUrl['path'].(isset($arrUrl['query'])?"?".$arrUrl['query']:"");
	$fp = @fsockopen($host,$port,$errno, $errstr, 30);
	if(!$fp)return false;
	$output="GET $path HTTP/1.0\r\nHost: $host\r\nReferer: $sUrl\r\nConnection: close\r\n\r\n";
	stream_set_timeout($fp, 60);
	@fputs($fp,$output);
	$Content='';
	while(!feof($fp))
	{
		$buffer = fgets($fp, 4096);
		$info = stream_get_meta_data($fp);
		if($info['timed_out'])return false;
		$Content.=$buffer;
	}
	@fclose($fp);
	global $jumpCount;//重定向
	if(preg_match("/^HTTP\/\d.\d (301|302)/is",$Content)&&$jumpNums<5)
	{
		if(preg_match("/Location:(.*?)\r\n/is",$Content,$murl))return getUrl($murl[1],$jumpNums+1);
	}
	if(!preg_match("/^HTTP\/\d.\d 200/is", $Content))return false;
	$Content=explode("\r\n\r\n",$Content,2);
	$Content=$Content[1];
	if($Content)return $Content;
	else return false;
}


Visual Studio Installer Projects 打包msi程序 摘要:本文详细介绍了使用Visual Studio创建Windows安装程序的完整步骤。主要内容包括:1.安装Visual Studio Installer Projects扩展;2.创建并配置Setup项目(设置安装目录为C:\Tools);3.添加快捷方式和依赖项检查;4.配置项目属性和生成MSI安装包;5.测试安装/卸载功能;6.提供常见问题解决方案。此外还介绍了添加应用程序图标和自定义安装界面等高级配置选项,确保程序能正确安装到指定目录并创建快捷方式。 阅读详情

相关推荐

使用Microsoft Visual Studio Installer Projects 2022打包后的安装程序没有权限修改配置文件

使用 Visual Studio 2022 创建基于 .NET 8 框架的 WPF 程序时,打包后的安装程序没有权限修改配置文件,通常是因为安装路径(如 C:\Program Files)受操作系统权限保护。如果需要修改配置文件,推荐将配置文件移到一个可写路径,例如用户目录。将默认配置文件放在安装目录,但实际运行时加载用户目录中的配置副本,避免直接操作安装目录。可以通过安装程序或代码手动修改权限,但不推荐此方法,因为它可能会降低系统的安全性。缺点:程序启动时会触发 UAC 提示,用户体验可能受影响。

無二的博客 969

PHP把网络url,直接保存到本地的方法

$data = file_put_contents($dir, file_get_contents("http://www.baidu.com")); 道理也很简单,就是通过函数file_get_contents 把网络地址中的数据转成字符串,在通过函数file_put_contents函数吧字符串写进文件当中 注:尤其对请求连接返回来的是一个压缩包的,特别好使 exec('rm -rf '); 直接执行系统命令有时间也特别关键 ...

Suruin的博客 997

Visual Studio Installer无法识别已安装产品:从注册表到运行库的完整修复指南

在Windows软件开发中,软件安装管理机制是确保开发环境稳定运行的基础。Windows Installer(MSI)作为核心安装技术,通过注册表、缓存文件和配置文件记录程序状态,其数据一致性直接影响开发工具的正常管理。当这些记录出现损坏或丢失时,会导致Visual Studio Installer无法识别已安装实例,进而影响开发环境的维护与更新。从技术价值看,理解并修复此类问题不仅能恢复开发工具功能,更能加深对Windows系统软件生命周期管理的认识。在实际应用场景中,开发者常因系统更新、文件清理或权限问

weixin_28834169的博客 269

SAE 版Thinkphp 加入xheditor 图片上传

public function eUpload() { $date_path=date("Ym"); import("ORG.Net.UploadFile"); $upload=new UploadFile(); $upload->maxSize = 2097152; $uplo...

weixin_34365417的博客 93

介绍如何在 Visual Studio 中安装和使用 Visual Studio Installer Projects 扩展来制作安装包

如果你需要在安装或卸载过程的特定时刻执行额外的操作(例如运行一个脚本、启动一个配置程序),可以在这里添加自定义操作。

码觉客的博客 1949

Microsoft Visual Studio 2017完整安装与开发环境搭建指南

Visual Studio 2017采用模块化架构,通过工作负载(Workload)机制实现按需安装,显著降低初始占用空间并提升启动效率。其底层基于重构的安装引擎——,支持精细化组件管理,开发者可仅安装所需开发栈(如.NET桌面、Web、移动等),避免冗余依赖。graph TDA[Visual Studio 2017] --> B[模块化安装引擎]A --> C[主界面 Shell]A --> D[语言服务]A --> E[调试器]A --> F[扩展平台 VSIX]

weixin_42518334的博客 2181

php抓取远程内容并保存到本地

function getImage($url,$save_dir='',$filename='',$type=1){ if(trim($url)==''){ return array('file_name'=>'', 'save_path'=>'', 'error'=>1);

getHello的博客 3569

PHP怎么实现网站保存快捷方式方便用户随时浏览

PHP怎么实现网站保存快捷方式呢?下面是一段PHP代码,下面这段代码,可以PHP实现网站保存快捷方式,以便用户随时浏览。 复制代码 代码如下: <?php $Shortcut = “[InternetShortcut] URL=http://blog.youkuaiyun.com/lee_magnum/ IDList = [{000214A0-0000-0000-C000-000000000046}] Prop3=19,2″; Header(“Content-type: application/octet-stream”); header(“Content-Disposition: attachment;

使用Microsoft Visual Studio Installer Projects 2022打包桌面程序

如上图所示,在解决方案中右击Setup项目,在view中有文件系统、注册表、文件类型、用户界面等多个不同选项,前面四步操作中涉及到的三个文件夹,都属于view 中个文件系统(如果你不小心关闭后找不到这三个文件夹,可以在这里点击文件系统重新打开)。上一步打包项目新建成功之后,Visual Studio右侧界面自动显示三个文件夹,这三个文件夹就是打包项目的文件系统。在当前解决方案下添加Setup 项目,添加新项目时,搜索并选择使用上一步安装的Setup Project模版。第六步主要介绍许可协议怎么添加。

Dominic_W的博客 6598

生成式引擎优化(GEO)全流程解析

生成式引擎优化(GEO)已成为AI时代数字营销新趋势,通过优化企业内容以提升在AI生成答案中的引用率。本文系统梳理了GEO优化的完整流程,包括:1)前期准备与市场调研;2)数据治理与知识库构建;3)模型适配与算法优化;4)内容权威性建设;5)本地化营销;6)效果监测与优化。研究显示,实施GEO的企业AI曝光率提升62%,转化率增长2.3倍。未来GEO将向多模态内容、实时个性化、垂直场景深化方向发展。企业需建立动态知识图谱,采用结构化数据标记,持续优化内容策略,以在AI搜索时代获取流量优势。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 3248

SAP面试全过程(已拿offer)

周五打电话给我说过了SAP第一轮面试,第二轮要在下周四北京,这几天终于体会到了什么叫做重压下的感觉,越复习越虚,看别人的面经都感觉卧槽这问题也巨难了吧...连去北京可以见妹子这种事情都感觉一点心情都没有。面前准备固然是要有的,但关键是平时就要有料,多想想自己做的项目。当作一个给自己的提醒吧!

cloudray8580的专栏 4万+

用Microsoft Visual Studio Installer Projects 2022打包程序,同时安装VC++的运行库等

零基础学习程序打包!本博客以浅显易懂的方式,详细介绍 Visual Studio Installer Projects 2022 的使用方法。包含完整的操作流程、截图示范、代码示例,让你快速掌握创建安装程序的核心技能,轻松打包自己的作品。

hjl011006的博客 2079

Xilinx Vivado vitis IDE launch Failed \ Web installer client Obsolete 怎么办

Xilinx vitis_IDE failed Web installer client Obsolete

weixin_44820962的博客 8644

C#使用Microsoft Visual Studio Installer Projects打包桌面程序

此方法打包的安装包,安装时会检查电脑是否有对应的.net环境,如果没有回自动下载并弹出.net安装界面。

qq_30995621的博客 3050

基于Matlab的MIMO通信系统仿真_Simulink实现

瑞利衰落信道中使用空时分组码的BPSK调制的BER 1、2发1收 参数设置: 双极性信号元+1和-1,每符号含1bit; 采样时间=符号时间=1s; 采用基于数据帧的仿真计算模式,每帧中有2个采样值; 仿真时间=出现100个误码后停止仿真; 随机整数种子=22; Jakes衰落模型中每个信道上的多普勒频移=0.01Hz; 输人信号功率=2W; Alamouti码:两根发送天线,一根接收天线(分集阶= 2); 平均信道信噪比= 18dB; 仿真得出的误码率统计BER =0. 00017. 2、2发

太阳帅帅的博客 9688

看懂 SAP S/4HANA 产品主数据里的 GTIN:一串号码背后的全球商品识别与业务协同

SAP S/4HANA中的GTIN管理是企业供应链运营的关键环节。本文深入解析GTIN的业务内涵及其在SAP系统中的实现方式:1) GTIN是全球通用的商品标识码,不同于企业内部物料编码;2) SAP主数据中GTIN与计量单位强绑定,需为不同包装层级维护独立GTIN;3) 同一产品可能因渠道、供应商差异存在多个GTIN;4) GTIN贯穿零售POS、仓储管理、EDI订单等核心业务流程;5) 通过典型案例说明错误维护GTIN将导致收银异常、仓库作业低效等运营问题。文章强调GTIN管理需结合包装层级、计量单位等

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1433

Microsoft Visual Studio 2015 Installer Projects 打包 安装 部署

打包工具组件: Microsoft Visual Studio 2015 Installer Projects 安装链接 问题汇总: 安装完 打包组件,第一次生成就抛出一个无法解决的错误。 经查阅相关资料后,感觉可能是 mergemod.dll 文件版本太老了. 网上提示需要 2.0.2600.0 版本,文件存放在目录 C:\Program Files (x86)\Common Files\m...

Jeacean的博客 5571

【即插即用模块】Mamba篇 | CVPR 2025 | MaIR:新型Mamba扫描方式+通道混洗注意力,全任务涨点!

MaIR是一种新型图像恢复模型,通过嵌套S形扫描策略(NSS)和序列混洗注意力(SSA)改进传统Mamba方法。NSS采用条纹区域划分和S形扫描路径,既保留图像局部性又维持空间连续性;SSA通过通道洗牌和门控机制增强特征聚合。该模块创新性地融合多路径选择性扫描、深度卷积和注意力机制,在保持O(N)计算复杂度的同时,显著提升超分辨率和去噪等任务的性能表现(PSNR提升0.2-0.5dB)。代码实现包含特征洗牌、组卷积等关键操作,适用于高分辨率视觉任务,可作为即插即用组件替代传统自注意力模块。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1168

Visual Studio Installer Projects 完整安装教程

但很多初学者经常在安装时找不到正确的位置,本教程将详细指导你完成整个安装和使用流程。前言:很多开发者在打包应用时容易找错安装位置,本文将带你正确安装并使用 Visual Studio Installer Projects 创建专业的安装包。在 Setup 项目上右键,选择"查看",然后点击"文件系统"。这将打开文件系统编辑器。⚠️ 重要提示:不是"工具",是"扩展"。在你要打包的解决方案上右键,选择"添加",然后点击"新建项目"。1. 正确找到安装位置:通过"扩展"→"管理扩展"来安装。

Ye030111的博客 1073

6、Dialogflow 开发全解析:从基础到高级应用

本文全面解析了 Dialogflow 的核心功能与高级应用,涵盖意图与实体的创建、上下文管理、后续意图设置以及高级实体类型的实际应用场景。详细介绍了自定义实体的导入导出规则、编程添加方法及数量限制,并通过流程图和实例说明了上下文生命周期与对话连贯性设计。结合电商、旅游、问卷调查等实际业务场景,展示了模糊匹配、自动扩展、复合实体等功能的强大灵活性。最后提供了开发最佳实践建议,帮助开发者构建高效、智能的对话系统。

kafka6courier的博客 104

1篇1章3节:R 语言的产生与发展轨迹(更新2024/08/14)

药物的研究阶段包括靶标确定、生物学模型建立、新化学实体的发现和优化新化学实体四个关键环节。每个环节都在药物研发过程中发挥着至关重要的作用。通过科学严谨的方法和技术手段,研究人员能够在药物研发过程中不断探索和优化,从而发现和开发出具有高效、安全性的候选药物,为疾病治疗提供更多的选择和希望。

MD Code 2668

Visual Studio 2019 的安装教程

注意:部分内容只面向学习C语言的同学 1.打开浏览器搜索“Microsoft官网” 2.进入网站 3.点击右上角的“所有Microsoft” 4.找到“开发人员与IT”一列中的“Visual Studio”并点击进入 5.点击下载“Visual Studio Community 2019” “Visual Studio Installer”相当于是安装助手 6.安装完成后进行对“Visual Studio Community 2019”的修改 只是学习......

粉墨白伶的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Microsoft Visual Studio Installer Projects打包成安装包

梅特勒、赛多利斯天平助手安装生成

weixin_37765605的博客 373

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

利用Microsoft Visual Studio Installer Projects打包安装包

此篇博客将说明如何利用Visual Studio上的Microsoft Visual Studio Installer Projects扩展打包安装包。

m0_51961114的博客 4579

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Visual Studio2019生成安装包

1 在vs中选择扩展->管理扩展 2 选择联机,在右边输入installer,则会搜索到Microsoft Visual Studio Installer Projects组件,安装即可,也可以到百度上搜索安装 3.打开要打包得项目,在解决方案点右键,选择添加->新建项目 4 在上面输入setup,则会搜索到Setup Project模板,选择Setup Prject模板,点击下一步 5. 输入项目名称,保留Setup即可,点击创建 6. 双击App...

dxm809的博客 9230
上一篇: C#读取INI
下一篇: Javascript网页破坏游戏
我不是稻草人
博客等级 码龄18年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值