2015-04-23 2 views
0

Итак, я пытаюсь установить документ JavaScript для переменной на PHP?Установить файл JavaScript в переменную в PHP

По сути, я устанавливаю скорость Wi-Fi, которую я вычисляю в документе Javascript, для переменной, поэтому я могу сохранить значение переменной в базе данных с другой информацией в качестве экземпляра.

Javascript-код довольно длинный, поэтому я не знаю, должен ли я скопировать весь код и установить его равным переменной, или если есть синтаксис, чтобы установить его в переменную.

Я видел:

<script type="text/javascript" src="file.js"></script> 

Online для вызова файла Javascript, но не знаете, как получить это значение и сохранить его в переменной.

+0

Спасибо, я попытаюсь включить это. – LeslieKnowsBest

ответ

0

Вы могли бы сделать что-то вроде этого

$js = file_get_contents('http://www.example.com/javacsript.js'); 

$value = trim(str_replace(array("document.write('", "');"), '', $js)); 

echo $value; 

Надеется, что это поможет вам

+1

Это просто сохраняет содержимое js в переменной php, но не сохраняет результат javascript alghoritm (который получает скорость WiFi) в переменной php. Это не отвечает на вопрос ОП. – clami219

0

JavaScript должен быть выполнен в клиентском браузере. Поток будет:

  1. РНР генерирует HTML (которым включает в себя код JS)
  2. HTML отправляется в браузер
  3. браузер придающей HTML и выполняет JS
  4. браузер обменивается данными с сервер, чтобы сообщить результат

В зависимости от того, является ли JS библиотека или сценарий, точные этапы будут отличаться. Но в основном внутри тегов вам придется сохранить результат в переменной, а затем сделать вызов AJAX (проще с jQuery.ajax()), чтобы передать эту переменную серверу, а затем сервер может что-то с этим сделать.

Я надеюсь, что это поможет вам на правильном пути. Если вы развернете информацию в своем вопросе, я постараюсь обновить свой ответ :)

+0

Это именно то, о чем я просил, это должно сработать. – LeslieKnowsBest

0

Вы должны сделать это, используя POST, возможно, с тем же PHP-скриптом.

<form method='post' id=myform> 
<input type=hidden id=js-to-php value=0> 
</form> 
<script> 
jQuery(document).ready(function(){ 
//calulcate the wifispeed using the long js code 
//then save it in the field 
$('#js-to-php').val(YOUR_SPEED); 
// send the form 
$('#myform').submit(); 
}); 
</script> 

, а затем в том же скрипте:

if(isset($_POST['js-to-wifi']) && $_POST['js-to-wifi']!='') { 
    // store your stuff in DB 
} 
+0

Кусок о js-to-php - это именно то, что именно? Я называю переменную во входном теге html, а затем помещаю его туда? – LeslieKnowsBest

0

Так вот код сценария Java:

//Source: http://stackoverflow.com/questions/5529718/how-to-detect-internet-speed-in-javascript 


var imageAddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg"; 
var downloadSize = 4995374; //bytes 

window.onload = function() { 
    var oProgress = document.getElementById("progress"); 
    oProgress.innerHTML = "Loading the image, please wait..."; 
    window.setTimeout(MeasureConnectionSpeed, 1); 
}; 

function MeasureConnectionSpeed() { 
    var oProgress = document.getElementById("progress"); 
    var startTime, endTime; 
    var download = new Image(); 
    download.onload = function() { 
     endTime = (new Date()).getTime(); 
     showResults(); 
    } 

    download.onerror = function (err, msg) { 
     oProgress.innerHTML = "Invalid image, or error downloading"; 
    } 

    startTime = (new Date()).getTime(); 
    var cacheBuster = "?nnn=" + startTime; 
    download.src = imageAddr + cacheBuster; 

    function showResults() { 
     var duration = (endTime - startTime)/1000; 
     var bitsLoaded = downloadSize * 8; 
     var speedBps = (bitsLoaded/duration).toFixed(2); 
     var speedKbps = (speedBps/1024).toFixed(2); 
     var speedMbps = (speedKbps/1024).toFixed(2); 
     oProgress.innerHTML = "Your connection speed is: <br />" + 
      speedBps + " bps<br />" + 
      speedKbps + " kbps<br />" + 
      speedMbps + " Mbps<br />"; 
    } 
} 

Я хочу, чтобы получить значение, что это будет возвращать (я буду редактировать код, поэтому я получаю только одно значение), а затем помещаю его внутри переменной php. Вопрос в том, когда я запускаю его на веб-странице после использования:

$Speed = file_get_contents('wiFiCalc.js'); 
$value = trim(str_replace(array("document.write('", "');"), '', $Speed)); 
echo $value; 

Я просто получить код на странице HTML, как указано выше clami219. Я просто хочу вернуть это значение, чтобы распечатать его и сохранить в базе данных.

Кроме того, Jobst, как вы написали, было трудно следовать. Я использую действие формы в своем html-коде, чтобы перейти на скорость, чтобы он мог быть сохранен в базе данных до того, как он вернется к следующей странице HTML, чтобы вы могли объяснить, как работает ваш код?

Смежные вопросы