chrome浏览器debugger失效_chrome debugger不生效-CSDN博客

mikel阅读(355)

来源: chrome浏览器debugger失效_chrome debugger不生效-CSDN博客

前几天谷歌浏览器偷偷升级(版本120),项目写Debugger的时候失效了,但是控制台断点正常,当时看到一个忽略列表,点了取消之后可以了,后面好奇又查了一下,解决方法如下
1.f12打开控制台点击设置

2.在设置中找到忽略列表,点击取消排除规则即可

然后项目里断点就可以正常使用了。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_42450258/article/details/135025475

GPT-SoVITS 本地搭建踩坑-CSDN博客

mikel阅读(537)

来源: GPT-SoVITS 本地搭建踩坑-CSDN博客

前言
传言GPT-SoVITS作为当前与BertVits2.3并列的TTS大模型,于是本地搭了一个,简单说一下坑。

搭建
下载
到GitHub点击此处下载
https://github.com/RVC-Boss/GPT-SoVITS

 

解压
解压到全英文目录

VSCode打开
使用VSCode打开,切到conda并clone一个之前BertVits的环境(没环境的自己先做一个Python3.10的配好PyTorch的)

安装依赖包
使用下面语句安装依赖

pip install -r requirements.txt

修改内容
根据issues内大家讨论的结果,这样操作是实测可行的,但是之后作者应该会优化,截止发文这么改是没问题的,以后可能不用改了
https://github.com/RVC-Boss/GPT-SoVITS/issues/26

1.重新安装版本
输入下面的指令重新安装一下对应版本的

pip install funasr==0.8.7
pip install modelscope==1.10.0

2.修改文件内容
将 tools\damo_asr\cmd-asr.py 文件中的

inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model=’tools/damo_asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch’,
vad_model=’tools/damo_asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch’,
punc_model=’tools/damo_asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch’,
)

改成

inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model=’damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch’,
vad_model=’damo/speech_fsmn_vad_zh-cn-16k-common-pytorch’,
punc_model=’damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch’,
)

根据我的研究,原因是 git clone 的那几个模型的配置文件和它自动下载的内容不一样

修改后源码如下

# -*- coding:utf-8 -*-

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import sys,os,traceback
dir=sys.argv[1]
# opt_name=dir.split(“\\”)[-1].split(“/”)[-1]
opt_name=os.path.basename(dir)

path_asr=’tools/damo_asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch’
path_vad=’tools/damo_asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch’
path_punc=’tools/damo_asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch’
path_asr=path_asr if os.path.exists(path_asr)else “damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch”
path_vad=path_vad if os.path.exists(path_vad)else “damo/speech_fsmn_vad_zh-cn-16k-common-pytorch”
path_punc=path_punc if os.path.exists(path_punc)else “damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch”
# inference_pipeline = pipeline(
# task=Tasks.auto_speech_recognition,
# model=path_asr,
# vad_model=path_vad,
# punc_model=path_punc,
# )
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model=’damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch’,
vad_model=’damo/speech_fsmn_vad_zh-cn-16k-common-pytorch’,
punc_model=’damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch’,
)

opt=[]
for name in os.listdir(dir):
try:
text = inference_pipeline(audio_in=”%s/%s”%(dir,name))[“text”]
opt.append(“%s/%s|%s|ZH|%s”%(dir,name,opt_name,text))
except:
print(traceback.format_exc())

opt_dir=”output/asr_opt”
os.makedirs(opt_dir,exist_ok=True)
with open(“%s/%s.list”%(opt_dir,opt_name),”w”,encoding=”utf-8″)as f:f.write(“\n”.join(opt))

运行
在环境中输入,即可正常启动

python webui.py

总结
能够有感情的朗读了,不错
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/a71468293a/article/details/135889155

GPT-SoVITS-WebUI一键整合包及使用教程 - 掘金

mikel阅读(705)

来源: GPT-SoVITS-WebUI一键整合包及使用教程 – 掘金

GPT-SoVITS-WebUI

语音技术在人工智能的驱动下,正在以前所未有的速度推进。GPT-SoVITS-WebUI正是这一变革的先驱它利用少量的声音源,可以快速地训练出一个语音合成(Text-to-Speech,简称TTS)模型。

这个强大的Web界面工具不仅提供了零次学习和少量次学习的文本到语音(TTS)功能,还支持跨语言的语音转换,为语音技术的爱好者和开发者打开了一扇新的大门。

功能亮点:

  • 零次TTS: 只需输入一段5秒的语音样本,GPT-SoVITS-WebUI就能立即将其转换为文本,让你体验到即时的语音到文本的转换。
  • 少次TTS: 通过微调模型,只需1分钟的训练数据,就能显著提升语音的相似度和真实感,这对于个性化语音合成尤为关键。
  • 跨语言支持: GPT-SoVITS-WebUI能够处理与训练数据集不同语言的语音,目前支持英语、日语和中文,这大大拓宽了其应用范围。
  • WebUI工具集成: 工具中集成了多种实用功能,如语音伴奏分离、自动训练集分割、中文自动语音识别(ASR)和文本标注,这些工具对于初学者来说尤其友好,可以帮助他们轻松创建训练数据集和GPT/SoVITS模型。

学术Fun已将上述工具制作成一键启动包,点击即可使用,避免大家配置Python环境出现各种问题。下载地址: xueshu.fun/3670/,请在此页面右侧区域点击下载!

注意: 电脑配置需要满足以下条件:

  • 运行Windows 10/11 64位操作系统

安装教程

  1. 下载压缩包 下载地址: xueshu.fun/3670/,请在此页面右侧区域点击下载!
  2. 解压压缩包 解压后的路径最好不要包含中文。解压完成后,如下图所示,双击启动.exe文件运行。

解压文件

解压文件

  1. 启动WebUI 在浏览器中访问http://127.0.0.1:7860/,即可在浏览器中使用GPT-SoVITS-WebUI。

WebUI界面

WebUI界面

使用教程

获取数据集

  1. 声音提取: 选择 “0a-UVR5人声伴奏分离&去混响去延迟工具” 页签。我们需要勾选 “是否开启UVR5-WebUI” 来提取声音,制作干声。

开启UVR5-WebUI

开启UVR5-WebUI

稍等一下,会打开一个新的WebUI界面。

新的WebUI界面

新的WebUI界面

我们将在这个界面内完成提取干声的操作。将准备的音频或者视频文件拖放到左下角的框框内。

拖放音频或视频文件

拖放音频或视频文件

选择处理的模型。如果你的视频声音比较干净,可以选择HP2模型。如果背景声音很嘈杂,可以选择HP3模型。

选择处理模型

选择处理模型

选择输出格式,然后点击 “转换”。

点击转换

点击转换

转换成功后,你可以在整合包output路径下的uvr5输出目录中找到转换结果。

转换结果

转换结果

  1. 语音切分: 关闭 “是否开启UVR5-WebUI”,以释放显存。

关闭UVR5-WebUI

关闭UVR5-WebUI

删除刚刚音频分离路径下的背景声音,并将路径复制到下面的输入框里。

删除背景声音

删除背景声音

选择 “0b-语音切分工具” 页签。

选择语音切分工具

选择语音切分工具

点击 “开始语音切割”。

开始语音切割

开始语音切割

完成后,你可以在\output\slicer_opt路径下看到切割后的所有音频文件。

  1. 语音识别: 选择 “0c-中文批量离线ASR工具” 页签,将刚刚的分类目录路径复制到下面ASR中。

中文批量离线ASR工具

中文批量离线ASR工具

点击 “开启离线批量ASR”。

开启离线批量ASR

开启离线批量ASR

完成后,识别结果会保存在\output\asr_opt目录下。

  1. 开启标注工具: 选择 “0d-语音文本校对标注工具” 页签,把上面ASR生成的list文件的完整路径填写到下面的标注文件路径中。

开启标注工具

开启标注工具

点击 “是否开启打标WebUI”,系统会提示打标工具已开启。稍等一会儿,会弹出新的WebUI窗口,这就是标注工具的WebUI界面。

标注工具WebUI界面

标注工具WebUI界面

在这个界面里面进行文本校对,修改标点符号与停顿一致。如果听不清,有杂音,语速乱的,建议删除。或者回去进行音源调整。

进行文本校对

进行文本校对

删除方式是先勾选,然后点击 “删除”。一定要点 “上一页” 和 “下一页” 查看全部的,以免漏下。校对无误后点击保存,提交文本。

提交文本

提交文本

数据会保存到slicer_opt.list中。至此,我们已经完成了前置获取数据集的工作。

训练模型

  1. 训练集格式化: 点击 “1A-训练集格式化工具”,进入训练集格式化界面。填写训练的模型名称,填写上面数据集的list目录和音频切分的目录。

训练集格式化

训练集格式化

点击下面按钮 “开启一键三连”。

开启一键三连

开启一键三连

结束后,我们会在\logs\YeShu文件下看见23456。

训练完成

训练完成

这里我们得到了后面需要训练的特征缓存文件。

  1. 微调训练: 点击 “1B-微调训练” 页签,进入子模型训练界面。

我们需要开启两个微调子模型的训练,参数默认即可。推荐使用20系以上的N卡,8G以上的显存。如果显存不够,可以降低batch_size的数值。

微调训练

微调训练

点击 “开始SoVITS训练” 和 “开始GPT训练”。

开始SoVITS训练和GPT训练

开始SoVITS训练和GPT训练

VITS训练需要一些时间,请耐心等待。

训练中

训练中

训练中

训练中

训练完成后,微调模型就已经准备好了。

  1. 推理: 点击 “1C-推理” 页签,进入推理界面。

推理界面

推理界面

首先我们点击 “刷新模型路径按钮”,将刚刚训练的子模型拉取进来。

刷新模型路径

刷新模型路径

然后点击 “是否开启TTS推理WebUI” 按钮,即可开启推理。

开启推理

开启推理

开启推理

开启推理

稍作等待,会弹出推理WebUI界面。

推理WebUI界面

推理WebUI界面

推理前我们需要给它一个目标音色参考音频,可以在\logs\YeShu\5-wav32k路径下取一个音频。

目标音色参考音频

目标音色参考音频

文本可以在\logs\YeShu\这个路径的这个文件里找到。

文本来源

文本来源

我们将音频和文字,还有语音填入推理界面相应的位置。

填入推理界面

填入推理界面

然后将我们想说的文本,填写到下面。并且选择一种切分方式,或者自己手动切分。

填写文本

填写文本

点击 “合成语音”。

合成语音

合成语音

听一下效果:

到此,推理部分完。

我们现在已经获得了一个训练完成的TTS模型。可以在推理界面输入任何文本,让其进行朗读。

实时变声

后续的变声部分还在更新当中。

实时变声

实时变声

结语:

GPT-SoVITS-WebUI凭借其强大的功能和易用性,为语音技术的爱好者和开发者提供了一个强大的工具。它使得语音合成、识别和处理变得更加高效和便捷。随着技术的不断发展,我们期待GPT-SoVITS-WebUI能在未来的日子里,为语音技术的探索和应用带来更多的可能性。

作者:学术Fun
链接:https://juejin.cn/post/7326853170080514084
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

AI 语音克隆怎么做?GPT-Sovits新手克隆声音教程,让我们一起学习克隆他人的声音(2024年入门级声音克隆升级版) - 知乎

mikel阅读(443)

来源: AI 语音克隆怎么做?GPT-Sovits新手克隆声音教程,让我们一起学习克隆他人的声音(2024年入门级声音克隆升级版) – 知乎

https://github.com/RVC-Boss/GPT-SoVITS?tab=readme-ov-file
    • 文件大小
文件大小
    • 解压
解压
  • 使用:
使用
  • 1:双击打开 go-webui.bat
双击打开 go-webui.bat
  • 2:自动弹出页面:
自动弹出页面:
  • 3:处理声音:人声分离
    • ✔会自动弹出一个新的链接页面(需要等一会儿,才弹出来)
✔会自动弹出一个新的链接页面(需要等一会儿,才弹出来)
    • 弹出来了
弹出来了
    • 在你的本地新建一个文件夹 todo-songs,吧需要处理的音频放进去,在吧路径复制过来
在你的本地新建一个文件夹 todo-songs,吧需要处理的音频放进去,在吧路径复制过来
    • 新建文件夹
新建文件夹
    • 复制
复制
    • 转换
转换
    • 格式看自己需求
式看自己需求
    • 输出文件:在output里
输出文件:在output里
    • 4:语音切分 记得把之前的勾取消,节省性能
语音切分 记得把之前的勾取消,节省性能
      • 把刚刚处理好的音频,复制过来,重新命名(这里我在之前创建的 todo-songs文件夹,重新新建了一个 01)
把刚刚处理好的音频,复制过来,重新命名(这里我在之前创建的 todo-songs文件夹,重新新建了一个 01)
      • 复制路径:
复制路径:
      • 直接语音切割
直接语音切割
      • 输出路径
输出路径
    • 5:中文批量离线ASR工具
中文批量离线ASR工具
      • 路径更改 把刚刚切割的输出路径复制过来
路径更改 把刚刚切割的输出路径复制过来
      • 直接点开启离线进程
会加载一些文件
直接点开启离线进程
      • 完成
完成
      • 输出的路径output\asr_opt
输出的路径output\asr_opt
    • 6:语音文本校对标注工具
语音文本校对标注工具
      • 右键复制
右键复制
      • cmd:使用命令行,找到路径,复制,粘贴,也可以
cmd:使用命令行,找到路径,复制,粘贴,
      • ✔,会弹出新的窗口
会弹出新的窗口
      • 检查,音频有没有问题,没有问题就直接保存
检查,音频有没有问题,没有问题就直接保存
      • 直接,保存
保存
    • 7: 1-GPT-SoVITS-TTS 记得把之前的勾取消掉,
1-GPT-SoVITS-TTS 记得把之前的勾取消掉,
      • 1A-训练集格式化工具
        • 复制 路径
复制 路径
复制 路径
        • 直接开始
直接开始
        • 结束
结束
    • 1B-微调训练
1B-微调训练
      • 开启SoVITS训练
保持默认直接开始训练
      • 开启GPT训练
开启训练
      • 这个GPT训练可能会爆错误,把每张显卡的batch_size和总训练轮数的值降低一点,没保存模型也是这样修改
      • 每50轮才会保存一个模型
    • 1C推理
1C推理
      • 先刷新
先刷新
      • 选择训练好的模型
选择训练好的模型
      • 是否开启TTS推理WebUl ✔
是否开启TTS推理WebUl ✔
      • 新的窗口
新的窗口
      • 设置
设置
      • 合成语音
合成语音
    • 下次想用这个模型就直接加载
下次想用这个模型就直接加载

使用 DISM 安全清理 C 盘 WinSxS 文件夹空间 - lindexi - 博客园

mikel阅读(274)

来源: 使用 DISM 安全清理 C 盘 WinSxS 文件夹空间 – lindexi – 博客园

本文将介绍如何使用系统内置 DISM 工具进行安全清理 C 盘空间,清理 WinSxS 文件夹里面的可回收删除的程序包空间

开始之前,先使用管理员权限打开 CMD 或 PowerShell 命令行窗口。在 Win11 下,可右击开始菜单,点击终端管理员打开管理员权限的 PowerShell 命令行窗口

先查看 WinSxS 文件夹里面的可回收删除的程序包数量和上次清理的时间,以及 WinSxS 文件夹所占用的实际空间,从而决定是否进行下一步动作

在命令行窗口输入以下命令用来确定 WinSxS 文件夹的实际大小

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

执行之后输出的内容大概如下:

部署映像服务和管理工具
版本: 10.0.22621.1

映像版本: 10.0.22621.1555

[==========================100.0%==========================]

组件存储(WinSxS)信息:

Windows 资源管理器报告的组件存储大小 : 9.09 GB

组件存储的实际大小 : 6.21 GB

    已与 Windows 共享 : 5.19 GB
    备份和已禁用的功能 : 1.02 GB
    缓存和临时数据 :  0 bytes

上次清理的日期 : 2023-05-03 15:10:13

可回收的程序包数 : 1
推荐使用组件存储清理 : 是

各个项的说明如下:

  • Windows 资源管理器报告的组件存储大小:Windows 资源管理器计算的 WinSxS 文件夹的大小值。 此值不会考虑 WinSxS 文件夹中使用的硬链接。
  • 组件存储的实际大小:此值考虑 WinSxS 文件夹中的硬链接。 它不会排除通过硬链接与 Windows 共享的文件。
  • 与 Windows 共享:此值提供使用硬链接的文件的大小,这些文件使用硬链接以便同时显示在组件存储和其他位置(为便于正常操作 Windows)中。 这包含在实际大小中,但不应视为组件存储开销的一部分。
  • 备份和禁用的功能:这是为响应更新组件中的故障或提供启用更多功能的选项而保留的组件的大小。 它还包括组件存储元数据和并行组件的大小。这包含在实际大小中,是组件存储开销的一部分。
  • 缓存和临时数据:这是组件存储在内部用于加快组件服务操作速度的文件的大小。 这包含在实际大小中,是组件存储开销的一部分。
  • 上次清理日期:这是最近完成组件存储清理的日期。
  • 可回收包数:这是组件清理可以删除的系统中被取代包的数量。
  • 建议的组件存储清理:这是组件存储清理建议。 如果执行清理过程可以减少组件存储开销的大小,则建议进行清理。

如看到推荐清理存储,或者是自己感觉想清理看,则可以执行以下命令进行清理。清理是安全的,清理稍微缓慢,多跑跑也只是最多浪费点时间而已,不会损坏系统

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

执行以上命令即可进行安全的清理。清理完成可以再次执行 Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore 看看实际清理多少空间

如果觉得以上的命令清理的不够多,还可以再加上稍微危险的 /ResetBase 命令,此命令在 Windows 10 或更高版本的运行版本中,将删除组件存储区中每个组件的所有替换版本。换句话说就是丢失卸载补丁的功能,使用 /ResetBase 选项运行 /StartComponentCleanup 后,将无法卸载已安装的 Windows 更新。只有在确定自己当前的系统足够稳定时,也就是不需要卸载补丁才能使用如下命令

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

更多命令参数,请参阅 DISM 操作系统包(.cab 或 .msu)服务命令行选项 Microsoft Learn 文档

参考文档:

清理 WinSxS 文件夹 Microsoft Learn

ThinkPHP 页面跳转和重定向_thinkphp $this->success 重定向到指定页面-CSDN博客

mikel阅读(312)

来源: ThinkPHP 页面跳转和重定向_thinkphp $this->success 重定向到指定页面-CSDN博客

系统Controller类内置跳转方法error和success,分别用于错误提示和成功跳转。
两个方法分别有三个参数:
参数1:提示信息
参数2:跳转地址
参数3:跳转页面等待时间(秒)

$New = M(‘New’); //实例化New对象
$result = $New->add($data);
if($result){
// 成功后跳转到新闻列表页面
$this->success(‘新增成功,即将返回列表页面’, ‘/New/index’);
} else {
// 错误页面的默认跳转页面是返回前一页,通常不需要设置
$this->error(‘新增失败’);
}

success error跳转对应的模板

//默认错误跳转对应的模板文件
‘TMPL_ACTION_ERROR’ => THINK_PATH . ‘Tpl/dispatch_jump.tpl’,
//默认成功跳转对应的模板文件
‘TMPL_ACTION_SUCCESS’ => THINK_PATH . ‘Tpl/dispatch_jump.tpl’,

自定义跳转模板
将模板直接放到项目目录下

//默认错误跳转对应的模板文件
‘TMPL_ACTION_ERROR’ => ‘Common@Public/error’,
//默认成功跳转对应的模板文件
‘TMPL_ACTION_SUCCESS’ => ‘Common@Public/success’,

自定义模板中可以使用模板变量

$message 页面成功提示信息
$error 页面错误提示信息
$waitSecond 跳转等待时间 单位为秒
$jumpUrl 跳转页面地址

重定向
使用constroller的redirect方法来实现页面重定向跳转。

redirect(‘重定向操作地址(一般为[控制器/操作])’,’参数(字符串或者数组)’,’重定向等待时间(秒)’,’重定向提示信息’)

例:

$result = $New->add($data);
if($result){
// 停留5秒后跳转到New模块的category操作,并且显示页面跳转中字样
$this->redirect(‘New/category’, ‘cate_id=2&status=1′, 5,’页面跳转中…’);
} else {
// 错误页面
$this->redirect(‘New/error’);
}
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Cc_Rain0624/article/details/52369441

getimagesize引发failed to open stream: HTTP request failed! 的问题_getimagesize failed to open stream: http request f-CSDN博客

mikel阅读(323)

来源: getimagesize引发failed to open stream: HTTP request failed! 的问题_getimagesize failed to open stream: http request f-CSDN博客

php中getimagesize()引发failed to open stream: HTTP request failed! 的问题

这种一般是由于自己的代码和请求的远程图片编码不一致问题导致

首先你需要统一编码

比如有问题的图片为:$img

处理:

$img = iconv(‘gbk’, ‘utf-8’, $img);

在调用图片函数:

$info = getimagesize($img);

结束~

画外音:有时候iconv会导致一些报错信息,这个在这不讨论,也和这个问题无论,加上这个可以忽略。

iconv(‘gbk’, ‘utf-8//IGNORE’, $url)
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/u011056818/article/details/81539222

failed to open stream: No such file or directory问题解决大全-CSDN博客

mikel阅读(338)

来源: failed to open stream: No such file or directory问题解决大全-CSDN博客

这篇文章主要为大家详细介绍了failed to open stream: No such file or directory问题解决大全,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

failed to open stream: No such file or directory是PHP站点经常可能会遇到的问题,361源码做了个总结,希望能帮助到一些遇到这个问题的朋友们。

案例一:

(failed to open stream: No such file or directory)在IIS下PHP环境配置的目录权限导致出错的问题

原因及解决方法:

配置环境为 IIS + php

如果确认你的程序在其他环境下下可以正常运行而唯独在Win 下的 IIS 出现类似如下的错误:

Warning: main(./Config.php): failed to open stream: No such file or directory in D:/wwwroot/Demo/Config.php on line 13

Fatal error: main(): Failed opening required ‘./Config.php’ (include_path=’.;c:/php4/pear’) in D:/wwwroot/Core/Config.php on line 13

这个问题主要是 由于Win NTFS盘下去除了everyone 权限引起的, 在安全权限中加个 Internet 来宾账号就解决了.

操作步骤: D盘 -> 属性 -> 安全 -> 添加 用户 IUSR_XXXXX OK

案例二:

问题就是:

Warning: require_once(../lib/DBUtil.class.php) [function.require-once]: failed to open stream: No such file or directory in E:/phppro/dxh/service/ExpertService.class.php on line 2

Fatal error: require_once() [function.require]: Failed opening required ‘../lib/DBUtil.class.php’ (include_path=’.;C:/php5/pear’) in E:/phppro/dxh/service/ExpertService.class.php on line 2

解决方法:

在require时加上dirname(__FILE__),像这样: require_once(dirname(__FILE__).”/../lib/DBUtil.class.php”);
如下理解 require_once实例:
<?php
//如果b.php被其他目录里的a.php文件require 或者 include 去引用的话 require_once(“./c.php”);
//实际上调用的是a.php目录下的c.php require_once(dirname(__FILE__).”/c.php”);
//实际上调用的是b.php目录下的c.php require_once(“c.php”);
//实际上调用的是b.php目录下的c.php
?>
案例三:

运行php网站,出错,内容如下:

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required ‘E:/php/www/mrsoft/注册登录模块/index.php’ (include_path=’.;C:/php5/pear’) in Unknown on line 0

解决方法:

apache不能解析上图中“注册登录模块”的中文URL,把它换成英文路径即可。

总结:

关于failed to open stream: No such file or directory出现的问题,大体就分为这3大类型。如果你也遇到了这样的报错,你可以仔细比对属于哪个类型的错误。根据上面的提示和解决办法处理,相信很快就能解决问题。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_64051447/article/details/130746697

PHP使用phpqrcode生成二维码详解 - 掘金

mikel阅读(353)

来源: PHP使用phpqrcode生成二维码详解 – 掘金

1.phpqrcode类文件下载,下载地址: PHP QR Code download | SourceForge.net 。点击Downioad下载

image.png

下载下来的类文件是一个压缩包,里边包含很多文件和演示程序,我们只需要里边的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件,我们需要用到里边的QRcode类(第2963行)的png()方法(第3090行):

image.png

2.PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态)

3.PHP代码

3.1. 生成二维码(生成图片文件)   每调用一次都会在本地生成一张二维码图片
php

复制代码
function scerweima($url=''){undefined
    require_once 'phpqrcode.php';
    
    $value = $url;                    //二维码内容
    
    $errorCorrectionLevel = 'L';    //容错级别 
    $matrixPointSize = 5;            //生成图片大小  
    
    //生成二维码图片
    $filename = 'qrcode/'.microtime().'.png';
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);  
  
    $QR = $filename;                //已经生成的原始二维码图片文件  
 
 
    $QR = imagecreatefromstring(file_get_contents($QR));  
  
    //输出图片  
    imagepng($QR, 'qrcode.png');  
    imagedestroy($QR);
    return '<img src="qrcode.png" alt="使用微信扫描支付">';   
}
 
//调用查看结果
echo scerweima('https://www.baidu.com');
 
3.2. 在生成的二维码中加上logo(生成图片文件)    每调用一次都会在本地生成一张二维码图片

image.png

php

复制代码
function scerweima1($url=''){undefined
    require_once 'phpqrcode.php';
    $value = $url;                    //二维码内容  
    $errorCorrectionLevel = 'H';    //容错级别  
    $matrixPointSize = 6;            //生成图片大小  
    //生成二维码图片
    $filename = 'qrcode/'.microtime().'.png';
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);  
    
    $logo = 'qrcode/logo.jpg';     //准备好的logo图片   
    $QR = $filename;            //已经生成的原始二维码图  
 
    if (file_exists($logo)) {   
        $QR = imagecreatefromstring(file_get_contents($QR));           //目标图象连接资源。
        $logo = imagecreatefromstring(file_get_contents($logo));       //源图象连接资源。
        $QR_width = imagesx($QR);            //二维码图片宽度   
        $QR_height = imagesy($QR);            //二维码图片高度   
        $logo_width = imagesx($logo);        //logo图片宽度   
        $logo_height = imagesy($logo);        //logo图片高度   
        $logo_qr_width = $QR_width / 4;       //组合之后logo的宽度(占二维码的1/5)
        $scale = $logo_width/$logo_qr_width;       //logo的宽度缩放比(本身宽度/组合后的宽度)
        $logo_qr_height = $logo_height/$scale;  //组合之后logo的高度
        $from_width = ($QR_width - $logo_qr_width) / 2;   //组合之后logo左上角所在坐标点
        
        //重新组合图片并调整大小
        /*
         *    imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
         */
        imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height); 
    }   
  
    //输出图片  
    imagepng($QR, 'qrcode.png');  
    imagedestroy($QR);
    imagedestroy($logo);
    return '<img src="qrcode.png" alt="使用微信扫描支付">';   
}
 
//调用查看结果
echo scerweima1('https://www.baidu.com');
 
3.3. 生成二维码(不生成图片文件)   不生成文件,会直接输出二维码到浏览器中。
ini

复制代码
function scerweima2($url=''){undefined
    require_once 'phpqrcode.php';
    
    $value = $url;                    //二维码内容
    $errorCorrectionLevel = 'L';    //容错级别 
    $matrixPointSize = 5;            //生成图片大小  
    //生成二维码图片
    $QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
//调用查看结果
scerweima2('https://www.baidu.com');
作者:么得感情的攻城狮
链接:https://juejin.cn/post/7078630229492629517
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

php file_get_contents怎么读取图片 - 问答 - 亿速云

mikel阅读(317)

来源: php file_get_contents怎么读取图片 – 问答 – 亿速云

要使用file_get_contents函数读取图片,需要提供图片的URL地址作为参数。示例代码如下:

$imageUrl = 'https://example.com/image.jpg';
$imageData = file_get_contents($imageUrl);

// 保存图片到本地文件
file_put_contents('path/to/save/image.jpg', $imageData);

在上述示例中,$imageUrl是图片的URL地址,$imageData是通过file_get_contents函数获取的图片内容。然后,可以使用file_put_contents函数将图片内容保存到本地文件中。请将path/to/save/image.jpg替换为您要保存图片的本地路径。

请注意,使用file_get_contents读取大型或者远程服务器上的图片可能会导致内存溢出,这种情况下可以考虑使用stream_context_create函数和fopen函数来处理。以下是一个使用stream_context_createfopen函数的示例:

$imageUrl = 'https://example.com/image.jpg';

$context = stream_context_create(['http' => ['user_agent' => 'Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0']]);
$imageFile = fopen('path/to/save/image.jpg', 'w');
stream_copy_to_stream(fopen($imageUrl, 'r', false, $context), $imageFile);
fclose($imageFile);

在上述示例中,stream_context_create函数用于创建一个包含用户代理信息的上下文,避免某些远程服务器拒绝访问的限制。然后,使用fopen函数打开本地文件和远程图片文件,并使用stream_copy_to_stream函数将远程图片内容复制到本地文件。最后,关闭文件句柄。同样,请将path/to/save/image.jpg替换为您要保存图片的本地路径。

购买使用亿速云服务器,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。