我如何使用PHP的JavaScript代码?

时间:2016-10-18 07:13:56

标签: javascript php html2canvas

我在做什么?

我有一个dynamically created html division,其中包含用户可以在社交媒体上分享的游戏分数。

对于共享,我有元标记,例如实

<meta property="og:image" content= "<?php echo $img_url; ?>"/>

其中$img_urldynamically created html division

屏幕截图的链接

test.php - 我上面提到的元标记已放置,如果未设置html div,我想截取$img_url的屏幕截图。

 <?php
  session_start();
  
  $img_url = $_POST['img_url'];
  
  if(!isset($url)) {

   /* <script>
    function capture() {    

     html2canvas will give var img.
     Which will be POSTED to testsave.php to save it in the server.
     
     }
   </script>  */  
 }
?>
<html>

<!--dynamically created html division -->

</html>

testsave.php - 将从test.php获取已发布的值并将屏幕截图保存到服务器,并将$img_url发送回test.php

<?php
 session_start();
 
/*Get the base-64 string from data

Decode the string
 
Save the image

function predefined for random string*/

$img_url = $random_str.".png"; 

file_put_contents($img_url, $unencodedData);

$_SESSION['img_url'] = $img_url ;

?>

我的问题是什么?

当Facebook抓取特定页面时,它不会从session values或其他页面中的任何值。所以我不能从testsave.php发送img_val 到另一个页面,因为刮刀不会读取POSTED值。

所以,我在做什么,刮刀会刮掉test.php然后如果$img_val未设置我想让我的代码截取屏幕并发布js变量var imgtestsave.php保存图片,然后将$img_val的值发回test.php

我知道上面的代码可能存在很多错误,例如我无法将js置于php内。但我尝试了很多方法,但无法弄明白。

您能否建议我可以做些什么来使代码生效?或者您可以建议其他任何方式来执行此操作吗?

3 个答案:

答案 0 :(得分:1)

你必须用PHP回显HTML

<?php
  session_start();

  $img_url = $_POST['img_url'];

  if(!isset($url)) {

   echo "<script>
    function capture() {    

     //your js code here

     }
   </script>";  
 }
?>
<html>

<!--dynamically created html division -->

</html>

答案 1 :(得分:1)

为了在浏览器中提供它,我们必须将JS代码构造为PHP代码内部的字符串

例如Test.phtml-在某些条件下我正在调用js函数的地方。

<body>
 <?php if($this->emptyData){ ?>
    <div id="someTestDialog">
        <!-- call js function below -->
        <?php
            echo '<script type="text/javascript">testDialog();</script>';
        ?>
    </div>
<?php } ?>

</body>
<script>
function testDialog() {
    return $("<div class='dialog' title='Alert'><p>Hello World</p></div>")
        .dialog({
            resizable: false,
            height:90,
            width:90,
            modal: true,
            dialogClass: 'no-close success-dialog',
            buttons: {
                "OK": function() {
                $( this ).dialog( "close" );
            }
         }
    });}
$(document).ready(function() {
    var text = "some code here" });    </script>

答案 2 :(得分:0)

解决方案之一是使用here-document将整个HTML页面分配给PHP变量,然后在需要时回显/打印它,并在其中包含Javascript代码

示例“此示例不包含您提到的图像,但可以使用任何Javascript代码”

<?php

$variable=<<<_END
<html>
<p>Some HTML line...</p> 
<script>
//you can write the Javascript codes you need here
 console.log('Find this sentence at console !')
</script>
</html>
_END;

echo $variable;

?>