- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的论坛生成动态签名。一切正常,我生成了它,但是我需要获取扩展名为 .png 的图像,因为目前图像的链接如下所示:
这是我的代码,我尝试保存图像,如您在末尾的注释行中所见,但我无法显示 .png 图片。只显示用 php 生成的那个。我需要的是具有正常扩展但动态的图像。
我的代码:
<?
$username="XXX"; //Your MySQL Username.
$password="XXX"; // Your MySQL Pass.
$database="XXX"; // Your MySQL database.
$host="localhost"; // Your MySQL host. This is "localhost" or the IP specified by your hosting company.
$player_name=$_GET['player_name']; // This gets the player his name from the previous page.
/* Next, we will make a connection to the mysql.
If it can't connect, it'll print on the screen: Unable to select database. Be sure the databasename exists and online is. */
mysql_connect($host,$username,$password); // Connection to the database.
@mysql_select_db($database) or die( "Unable to select database. Be sure the databasename exists and online is."); //Selection of the database. If it can't read the database, it'll give an error.
/* To protect MySQL injection. */
$player_name = stripslashes($player_name);
$player_name = mysql_real_escape_string($player_name);
$query="SELECT * FROM stats_dm WHERE account='".$player_name."' LIMIT 1;"; // Gets all the information about the player.
$result=mysql_query($query);
$i=mysql_num_rows($result); // Here we are counting how many rows this result gives us.
/* We will now put the player's information into variables so we can use them more easily. */
/* DON'T FORGET: The names should be exact the same as in your mysql db.*/
if ($i == 1) // If the user has been correct, then it'll give us 1 row. If its 1 row, then it'll proceed with the code.
{
$Playername=mysql_result($result,0,"lastNick"); // Gets the username of the player and put it in the variable $Playername.
$Money=mysql_result($result,0,"Money"); // Gets the money of the player and put it in the variable $Money.
$Score=mysql_result($result,0,"points"); // Gets the score of the player and put it in the variable $Score.
$Mapsplayed=mysql_result($result,0,"MapsPlayed"); // Gets the played maps.
$Wins=mysql_result($result,0,"MapsWon"); // Gets the winned maps.
// Creating of the .png image.
header('Content-Type: image/png;');
$im = @imagecreatefrompng('signature.png') or die("Cannot select the correct image. Please contact the webmaster."); // Don't forget to put your picture there.
$text_color_red = imagecolorallocate($im, 255,0,0); // RED, GREEN, BLUE --> Go to www.colorpicker.com, select a nice color. Copy the R/G/B letters provided by colorpicker and put them here.
$text_color_white = imagecolorallocate($im, 255,255,255);
$text_color_blue = imagecolorallocate($im, 0,100,255);
$text_color_black = imagecolorallocate($im, 30,30,30);
//$text_username = $Playername; // This gets the information about player name to be showed in the picture.
$text_username = preg_replace("/#[a-f0-9]{6}/i", "", $Playername);
$text_score = $Score; // Same as above ^^
$text_money = $Money; // Same as above ^^
$text_mapsplayed = $Mapsplayed; // Same as above ^^
$text_wins = $Wins; // Same as above ^^
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
$font = 'impact'; //Upload your custum font to the directory where this file is placed. Then change the name here.
$dimensions = imagettfbbox(20, 0, $font, $text_username);
$textWidth = abs($dimensions[4] - $dimensions[0]);
$x = imagesx($im) - $textWidth;
/* USAGE OF THE imagettftext: First ($im) shouldn't be changed. (16) is the text-size. (0) is the angle of your text. Change it, and you'll see what's going on. (20) is de X-coordinate of the text.
(36) is the Y-coordinate of the text. */
//imagettftext($im, 16, 0, 230, 74, $text_color_red, $font, $text_username); // Prints the username in the picture.
//imagettftext($im, 14, 0, 301, 33, $text_color_blue, $font, $text_score); // Prints the score shadow in the picture.
//imagettftext($im, 14, 0, 300, 32, $text_color_white, $font, $text_score); // Prints the score in the picture.
imagettfstroketext($im, 14, 0, 300, 33, $text_color_white, $text_color_blue, $font, $text_score, 1); // Print pretty points
imagettftext($im, 10, 0, 50, 112, $text_color_white, $font, $text_money . "$"); // Prints the money in the picture.
imagettftext($im, 10, 0, 224, 112, $text_color_white, $font, $text_mapsplayed); // Prints maps played.
imagettftext($im, 10, 0, 328, 112, $text_color_white, $font, $text_wins); // Prints wins.
imagettfstroketext($im, 20, 0, $x, 74, $text_color_white, $text_color_black, $font, $text_username, 1);
//imagepng($im);
//imagepng($im, "/tmp/hedede.png");
//$save = strtolower($player_name) .".png";
//imagepng($im, $save);
//imagedestroy($im);
imagepng($im);
//$save = strtolower($player_name) .".png";
//chmod($save,0755);
//imagepng($im, $save, 0, NULL);
imagedestroy($im);
} else echo('Username is not in our database. Please try again.'); // If the username doesn't exist (so the row is 0) then it'll give en error.
mysql_close();
function imagettfstroketext(&$image, $size, $angle, $x, $y, &$textcolor, &$strokecolor, $fontfile, $text, $px) {
for($c1 = ($x-abs($px)); $c1 <= ($x+abs($px)); $c1++)
for($c2 = ($y-abs($px)); $c2 <= ($y+abs($px)); $c2++)
$bg = imagettftext($image, $size, $angle, $c1, $c2, $strokecolor, $fontfile, $text);
return imagettftext($image, $size, $angle, $x, $y, $textcolor, $fontfile, $text);
}
?>
最佳答案
将 .htaccess
文件与 mod_rewrite
一起使用
沿着这条线的东西应该做到这一点:
RewriteEngine on
RewriteRule /([0-9a-z]+)\.png /yourscript.php?img=$1
然后你可以将人们指向 png,它会被重定向到 php 脚本。
foobar.png
将重定向到 yourscript.php?img=foobar
关于php - 带有 png 扩展名的通用动态图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926153/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!