Выполнение Javascript во внешнем файле через php скрипт - PullRequest
0 голосов
/ 05 октября 2011

Я пытался создать php-файл, который по сути является мобильным коротким кодом.Поскольку любой вывод на странице автоматически отображается в мобильном SMS, я не могу использовать любой html на странице.Но у меня возникла проблема с выполнением некоторого JavaScript-кода Google Analytics до вывода текста на страницу.Я создал внешний файл и написал там javascript и попытался выполнить файл через curl, но curl не выполняет javascript.Итак, мой код для основного файла SMSapi.php выглядит примерно так:

<?php
    if(isset($_GET['mobile'])){
        $number = $_GET['mobile'];
    }

    if(isset($_GET['text'])){
        $data = $_GET['text'];
    }

    $brand = "mybrand";
    $event = "MyEvent";
    $deal = "MyDeal";

    $url = "http://myurl.com/sms.php";

    $post_string = "brand={$brand}&event={$event}&deal={$deal}";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);

    $success = curl_exec($ch);

    curl_close($ch);

    echo "Your discount code is XYZ123";
?>

Код sms.php выглядит следующим образом:

<?php 

if(isset($_POST) && !empty($_POST['event']) && !empty($_POST['brand']) && !empty($_POST['deal'])):
    $event = urldecode($_POST['event']);
    $brand = urldecode($_POST['brand']);
    $deal = urldecode($_POST['deal']);
?>
<html>
    <head>
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-MyNum']);
        _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
    _gaq.push(['_trackEvent', '<?php echo $event; ?>', '<?php echo $brand; ?>', '<?php echo $deal; ?>']);
</script>
</head>
</html>
<?php endif ?>

основной файл API SMS делает скручиваниезапрос к файлу sms.php, и пока файл исполняется, html и javascript возвращаются обратно в виде текста без какого-либо выполнения.И, следовательно, javascript отображается в SMS.

Есть ли способ реализовать внешний URL-адрес и все javascript-коды там и там через php?

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Я предполагаю, что это скрипт, который запускается по вызову от поставщика SMS, и вы пытаетесь зарегистрировать это событие в Google Analytics.

Во-первых, я бы подумал, что это будет легче осуществитьвойдя в базу данных, а не в Google Analytics.Поскольку javascript работает на стороне сервера, вы не получите никакой дополнительной информации, кроме события.

Если вам действительно нужно запустить код Google, тогда вам нужно попробовать поискать на «серверной стороне javascript google analytics».».Решение будет сильно зависеть от того, какую серверную платформу вы используете, и что / можно установить.

Одна интересная ссылка, которая может работать для вашего PHP:

http://code.google.com/p/serversidegoogleanalytics/

но я не использовал его, поэтому не знаю, насколько хорошо это работает.

0 голосов
/ 05 октября 2011

Эта ссылка может быть полезна для вас: http://curl.haxx.se/docs/faq.html#Does_curl_support_Javascript_or

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...