如何使动态创建的内容可共享
How to make dynamically created content sharable
我有一个网站可以使用 PHP 根据用户输入生成反馈,我想让人们可以选择分享他们的反馈,但我不确定如何分享。
我可以使用 Open Graph 并用 PHP 填充元数据,但它看起来不太好,人们可能只想共享网站而不是他们的反馈。
所以理想情况下,我希望能够分享某种类型的 HTML 或动态生成的图像。
Facebook 的
这个好像没有什么好的建议。
我更愿意使用 PHP 或某种类型的 Javascript 来完成它。
谢谢!
我觉得应该按照下面的方式来做(我没试过)。
由于 Facebook 提供了两件事,您的网页中包含的第一件事是 javascript 代码,第二件事是 html 标记
示例 html 标记遵循一个
<div data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count"></div>
您必须使用 $url
之类的变量更改 data-href 属性,它应该包含动态生成的 url
如果你想分享当前的 url 你将使用 $_SERVER
superglobal 来构建它。
事实证明,执行此操作的最佳方法是在为图像输入 src=
时使用 php imagecreate(),只需将 GET 值放入图像的 URL你打电话给
<img src="www.domain.com/myimage.png?textoverimage=customersname" />
但是您可以使用 php 创建 url,这样人们就可以通过简单的 html 表单提交他们想要的图像值,就像这样。
<form method="get">
<imput type="text" name="customername" />
<imput type="submit" />
</form>
<img src='www.domain.com/myimage.png?textoverimage=<?php echo $_GET["customername"];?>' />
然后 php imagecreate() 将采用这些值并使用它们将文本放在图像上,从那时起就很容易使图像可共享。
现在您可能习惯于在 <img />
的 src
中调用图像文件,但在这种情况下,您实际上会调用 php 文件并且 imagecreate() 将生成php 文件中的所需图像。下面是 php 文件的样子。
<?php
// Set the content-type
header('Content-Type: image/png');
// Create the image
$im = @imagecreatefromjpeg("http://domain.com/imagefile.jpg");
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
//imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = $_GET["textoverimage"];
$font = '/stocky.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 120, 170, $grey, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
这是我发现的动态生成带有文字的图像的最佳方法。
我有一个网站可以使用 PHP 根据用户输入生成反馈,我想让人们可以选择分享他们的反馈,但我不确定如何分享。
我可以使用 Open Graph 并用 PHP 填充元数据,但它看起来不太好,人们可能只想共享网站而不是他们的反馈。
所以理想情况下,我希望能够分享某种类型的 HTML 或动态生成的图像。
Facebook 的
这个好像没有什么好的建议。
我更愿意使用 PHP 或某种类型的 Javascript 来完成它。
谢谢!
我觉得应该按照下面的方式来做(我没试过)。 由于 Facebook 提供了两件事,您的网页中包含的第一件事是 javascript 代码,第二件事是 html 标记 示例 html 标记遵循一个
<div data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count"></div>
您必须使用 $url
之类的变量更改 data-href 属性,它应该包含动态生成的 url
如果你想分享当前的 url 你将使用 $_SERVER
superglobal 来构建它。
事实证明,执行此操作的最佳方法是在为图像输入 src=
时使用 php imagecreate(),只需将 GET 值放入图像的 URL你打电话给
<img src="www.domain.com/myimage.png?textoverimage=customersname" />
但是您可以使用 php 创建 url,这样人们就可以通过简单的 html 表单提交他们想要的图像值,就像这样。
<form method="get">
<imput type="text" name="customername" />
<imput type="submit" />
</form>
<img src='www.domain.com/myimage.png?textoverimage=<?php echo $_GET["customername"];?>' />
然后 php imagecreate() 将采用这些值并使用它们将文本放在图像上,从那时起就很容易使图像可共享。
现在您可能习惯于在 <img />
的 src
中调用图像文件,但在这种情况下,您实际上会调用 php 文件并且 imagecreate() 将生成php 文件中的所需图像。下面是 php 文件的样子。
<?php
// Set the content-type
header('Content-Type: image/png');
// Create the image
$im = @imagecreatefromjpeg("http://domain.com/imagefile.jpg");
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
//imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = $_GET["textoverimage"];
$font = '/stocky.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 120, 170, $grey, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
这是我发现的动态生成带有文字的图像的最佳方法。