php Fatal error: Call to undefined function imagecreatefromjpeg()
代码
代码如下 | 复制代码 |
if(!imagecreatefromjpeg("./testimg.jpg")) |
如果你使用此函数提示php Fatal error: Call to undefined function imagecreatefromjpeg()
这个错误是因为没有安装gd 的jpeg, 虽然你用phpinfo 查看有gd但 gd 不支持 jpeg
安装前我的phpinfo 如下:
gd
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
libPNG Version 1.2.10
WBMP Support enabled
XBM Support enabled
显然gd 没有支持jpeg 的,下面要安装 gd中的 jpeg
代码如下 | 复制代码 |
1、找到php 源码目录 |
安装后查看phpinfo
gd
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.10
WBMP Support enabled
XBM Support enabled
很显然多了个 JPEG Support enabled
以windows下的php+apache。
首先,打开php.ini,找到“extension=php_gd.dll”,然后去掉前面的“;”注释,重启apache即可。
如果还出现此类问题,先检查php.ini的extension_dir值是哪个目录,在那个目录下检查有无php_gd.dll,没有的话请下载php_curl.dll,再把php目录中的libeay32.dll和ssleay32.dll拷到c:windowssystem32里面,重启apache,OK!
最近在工作中小组到一个cookie跨域设置的问题,然后就一些知识点进步了梳理,然后到网上搜索这方面的资料。本来这些都是一些基础知识,但是网上很多资料参差不齐,有的错误的文章来被转了很多次,所以我自己通过测试来整理这些问题。第一个:cookie的setDomain属性到底能不能设置成当前应用程序所在的域之外的域名。比如我当前应用的域名是:www.test1.com,那么我在当前的应用里设置cookie的Domain为".test2.com",会有什么效果?浏览器会不会接受服务器返回来的cookie?假如浏览器真的接受了服务端返回的cookie,那么浏览器下次真的访问www.test2.com时到底会不会把之前的cookie给带上?
现在我写了两个web程序,每个web程序都有一个servlet,同时修改host文件,第一个应用的域名是:www.test1.com,第二个域名是:www.test2.com。并且使用火狐狸和IE10来做测试,测试过程如下:
1)首先在www.test1.com的程序中设置cookie的domain为“.test2.com”,访问该应用,在这种情况下IE和火狐狸的浏览器都会接受cookie,而且其Domain很明确是.test2.com,这里就说明cookie是可以写到浏览器里的,而不是很多地方说的被忽略云云。但是如果再次访问的时候,无论是访问www.test1.com或者是www.test2.com都不会把这个cookie带过去。这就验证了cookiede setDomain这个方法是不能设置当前应用所在域之外的域名的,之前看到很多文章说的结论是在www.test1.com的应用中设置cookie的domain为www.test2.com,则访问www.test2.com时就能在test2.com的应用中取到该cookie,这完全是不负责任的扯淡,那种情形只适合共同根域名的情况。辩证想一想都不可能,否则我就能操纵百度或者阿里的网站来读取我们自己定义的cookie?
2)现在我们设置www.test1.com的域名为自己,那么如果我们在www.test1.com的网页中使用Iframe嵌入www.test2.com的应用,那么会是什么结果?
首先我们访问了www.test1.com,这个时候www.test1.com和www.test2.com的cookie都写到浏览器里了,无论是在IE还是在火狐狸里都是如此,那么再次访问www.test1.com的时候,IE和火狐狸这个时候不同的地方就显示出来了。这个时候IE只会把www.test1.com的cookie带上,而不会带www.test2.com的cookie的(也就是说在www.test2.com的应用里是拿不到cookie的),而且这个时候你再次专门访问www.test2.com也不会拿到之前明明已经写入到浏览器里www.test2.com域名下的cookie。而如果在火狐狸里,则www.test1.com的应用中会取到www.test1.com的cookie,而且无论是iframe内嵌或者直接访问www.test2.com的应用里都会拿到自己域名下的cookie。这种情况使用<img>和<script>标签获取cookie是一样的道理。这样看来IE10的安全级别更高。
3)如果我们非要www.test1.com中利用iframe内嵌www.test2.com的方式来将test2.com域名下的cookie带过去给www.test2.com服务应用,那该怎么办?
这个非常简单,设置www.test2.com的head,比如response.setHeader设置P3P。关于P3P协议网上资料一大堆,大家可以自己看看。这里要注意,我们在www.test1.com使用iframe嵌入www.test2.com的应用,则www.test1.com设置的cookie就是通常意义的第一方cookie,而www.test2.com的cookie就是常说的第三方cookie,我们要设置P3P是要在第3方的程序中设置,这个很多资料里也没有说明白。其实就是www.test2.com的服务端和浏览器协商,让浏览器允许其携带上cookie给服务端。一旦突破这点,再结合referer首部属性就能获取用户的浏览习惯和喜好,像经常购买书籍、电子产品等。比如:A网站嵌入了B网站的一个页面,并且B网站设置了P3P,那么当用户访问A网站的时候会顺便访问B网站,这个时候B网站就随机生成一个ID,将这个ID写入到cookie,并将这个id和referer信息存入自己的数据库。下次,无论是C网站或者其他网站内嵌了B,被用户访问了,也或者是用户又访问A,都会顺便访问B网站并且将referer和id存入数据库,如果用户用的是同一个浏览器并且从来不清理cookie,这样cookie中记录的id就不变,每次访问就会把B的cookie带上,B网站根据cookie中的id和多次存入数据库的referer就能知道你都登录了哪些网站。因为referer的链接说明了所有问题。这样就可以做到对这个人的跟踪和分析。就好比我把我的眼线放在100商店,你访问各个商店时,他们就把你的购买什么的情况告诉我,天长日久我就知道你喜欢买什么了,不知道这个例子是否准确。
暂时先写到这里吧,这个问题也是首次稍微深入探索下,后边根据进展再补充吧,如果有错误请读者一定指正不胜感激。总之,这种基础知识是设计框架的基石,必须要搞清楚。否则,寝食难安、芒刺在背。
因为一些特殊原因,我需要对phpmyadmin的配置文件进行修改,但是修改后就出现问题了,一打开phpmyadmin,就出现“配置文件现在需要绝密的短语密码(blowfish_secret)。”
那就按照他的提示来吧,在配置文件里设置一个密码就是了。
打开phpmyadmin的配置文件 phpmyadmin/config.inc.php(注:php5.0为config.sample.inc.php)
查找 $cfg['blowfish_secret'] 把他的值修改下,任意数字字母都可以,也就是错误信息中提到的设置短语密码。
vi phpmyadmin/config.inc.php
代码如下 | 复制代码 |
<?php |
修改以后,以后登入phpmyadmin就方便多了,但一定不要使用空密码,切记!
phpMyAdmin是各大站长常用的一个数据导入导出工具了,但它默认只能导入2MB大小的数据了,如果要导入大数据我们需要进行简单的配置,下文一起来看看吧。phpMyAdmin使用方便,已成为大多数站长的常用工具,对于小型网站来讲phpmyadmin已经绰绰有余了,但是对于中大型网站,在数据库较为庞大的时候,phpmyadmin就显得力不从心了!
当使用 phpMyAdmin 导入的数据库大小大于 2M 的时候,会出现如下提示:
No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.
一般情况下,phpMyAdmin最大限制上传2M以内的文件,但是当网站运营一段时间后,即使把sql格式的数据库压缩成zip格式,想变成2M以内是不太现实的。
个人并不推荐使用phpMyAdmin来导入大数据库,因为大多数用户使用的是虚拟主机,很多文件没有服务器权限是无法修改的,而且phpmyadmin对大数据库的执行效率也非常低,容易出现错误。
导入大数据库的解决方案
推荐使用 BigDump工具 来进行导入大数据库的操作,下载地址和使用方法见:用BigDump工具导入超大MySQL数据库备份文件
如果你很执着一定要用phpmyadmin来进行数据库导入操作,网络上虽然可以找到很多资料,但大多数都不全,只解决了一部分问题,所以我整理出了相对比较靠谱的方案,
以下是我搜集的一些解决phpMyAdmin上传文件大小限制的方法
方案一(简单)
打开phpmyadmin下的配置文件 config.inc.php
代码如下 | 复制代码 |
查找 $cfg['UploadDir'] = ”; $cfg['SaveDir'] = ”; 给他们赋值 $cfg['UploadDir'] = ‘upload’; $cfg['SaveDir'] = ‘save’; |
修改后如果提示“配置文件现在需要绝密的短语密码(blowfish_secret)。”不用担心,
然后在 phpMyAdmin 的目录下创建两个空目录,upload 和 save,并且把要导入的数据库文件(必须是sql格式,非zip格式)传送到 upload 目录下。
登录phpMyAdmin,点导入(import) 发现多了一个 网站服务器上传文件夹
选择网站服务器上传的文件夹里的数据库就可以了,然后点击【执行】按钮就可以顺利导入超大型的数据库了。
方案二(繁琐)
打开PHP配置文件 php.ini
查找 upload_max_filesize 和 post_max_size 把他们的值修改的大一点
如果上传的文件很大,还需进行以下修改
代码如下 | 复制代码 |
max_execution_time(php页面执行最大时间) max_input_time(php页面接受数据最大时间) memory_limit(php页面占用的最大内存) |
这是因为phpmyadmin上传大文件时,php页面的执行时间、内存占用也势必变得更长更大,其需要php运行环境的配合,光修改上传文件大小限制是不够的。
打开 phpmyadmin 目录下的 config.inc.php 文件
查找 $cfg[‘ExecTimeLimit’]配置选项,默认值是300,需要修改为0,即没有时间限制。
打开 phpmyadmin 目录下的 import.php 文件 修改 $memory_limit 的值
说明:首选读取php.ini配置文件中的内存配置选项memory_limit,如果为空则默认内存大小限制为2M,如果没有限制则内存大小限制为10M,你可以结合你php.ini配置文件中的相关信息修改这段代码。
如果你php使用字符编码转换函数 mb_convert_encoding碰到 Call to undefined function mb_convert_encoding()问题,可参考本文章来解决。在运行程序时发生“Fatal error: Call to undefined function
mb_convert_encoding()”致命错误,这个问题很好解决:
在php.ini中打开extension=php_mbstring扩展即可。
最后重启apache即可
测试
如:
$content = iconv("UTF-8", "gb2312//IGNORE″, $content);
相关文章
解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题
这篇文章主要介绍了解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-28解决jquery插件:TypeError:$.browser is undefined报错的方法
首先先说一说$.browser browser就是用来获取浏览器基本信息的。 jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需...2015-11-24Pytorch 的损失函数Loss function使用详解
今天小编就为大家分享一篇Pytorch 的损失函数Loss function使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-02PHP “Notice: Undefined variable” 和 “Notice: Undefined index”报错
下面我们来看一篇关于PHP “Notice: Undefined variable” 和 “Notice: Undefined index”报错,希望这篇文章能够帮助到各位朋友,有兴趣的朋友可以进来看看吧。...2016-11-25PHP Notice: undefined index原因与解决办法
在php开发时可能会碰到如PHP Notice: undefined index这种错误提示,下面我来给大家介绍关于undefined index错误提示的解决办法。 如 $_GET['aa']; 就会出现PHP No...2016-11-25php提示 Warning: touch() [function.touch]: Utime failed: Permission denied in错误
在使用php程序时提示Warning: touch() [function.touch]: Utime failed: Permission denied in错误,下面一起来看看此问题的解决办法。 使用timthumb.php出现Warni...2016-11-25Warning: mssql_connect() [function.mssql-connect]:
我是这样做的,确定mssql是正常的用户名密码也可以,但下面就是不行。 <?php教程 $con=mssql_connect( "localhost", "sa ", "123456 ") or die ('error'); ?>...2016-11-25Jquery attr("checked") 返回checked或undefined 获取选中失效
假设我们现在需要这样的场景:页面上有一个checkbox,我们期望通过Jquery来获得它是否选中,或者通过Jquery来让它被选中。 在JQ1.6之前的版本,我们会这样写我们的代码: 复制代码 代码如下: <input type='checkbox' id='cb'/>...2013-10-13Java8通过Function获取字段名的方法(获取实体类的字段名称)
Java8通过Function获取字段名。不用再硬编码,效果类似于mybatis-plus的LambdaQueryWrapper,对Java8通过Function获取字段名相关知识感兴趣的朋友一起看看吧...2021-09-29php CURLOPT错误Warning: curl_setopt() [function.curl-setopt]:...
在我们使用php curl函数时提示Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir...2016-11-25- 这篇文章主要介绍了精读《Vue3.0 Function API》,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-20
php Fatal error: Call to undefined function imagecreatefromjpeg()
imagecreatefromjpeg函数是一个图像处理函数,但在使用中发现Fatal error: Call to undefined function imagecreatefromjpeg()错误了,下文小编整理了一些教程,大家一起来...2016-11-25php连接mysql提示Call to undefined function mysql_connect()
今天在windows中配置了php mysql环境,很高兴测试一段代码结果提示Call to undefined function mysql_connect()这证明数据库配置不成功哈。 代码如下 ...2016-11-25php提示Notice: Use of undefined constant错误
下面整理了在使用php时出现的Use of undefined constant错误的解决办法,因这关于提示Use of undefined constant错误是配置问题并不是程序错误,下面给大家整理一下解决...2016-11-25Warning: mssql_query() [function.mssql-query]:
Warning: mssql_query() [function.mssql-query]: message: 不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数据...2016-11-25Call to undefined method DebugBar\\DebugBar::info()
我们看到英文Call to undefined method就知道是因为函数或方法没有定义了,这个对于插件就有可能是什么功能没有开启了,我们下面来看看Call to undefined method DebugBa...2016-11-25- 这篇文章主要介绍了Java8特性使用Function代替分支语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-09
iconv() [function.iconv]: Detected an illegal character in
本文章来给大家介绍iconv() [function.iconv]: Detected an illegal character in 错误的几种解决办法,有需要了解的朋友可参考。 用iconv函数将gb2312转换为utf-8...2016-11-25PHP Warning: implode() [function.implode]: Invalid
今天在做一个小的采集发布接口时发现使用implode函数老提示出错,但在网上找了一下解决不了,后来仔细看一原因是写法错误了,当然因这个问题也学了不少东西下面给各位整理...2016-11-25ASP.NET MVC @Helper辅助方法和@functons自定义函数的使用方法
本文主要介绍ASP.NET MVC中使用@Helper和@functons自定义一些代码片段,方便视图调用,从而达到减少重复代码,快速开发的目的,希望对大家有所帮助。...2021-09-22