Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кто уже сталкивался с ArthEdit v0.2 помогите открыть файл этим редактором
 
 автор: blackcement   (11.01.2009 в 19:45)   письмо автору
 
 

Есть документ index.html. В нём есть строка указывающая на файл JS
<SCRIPT src="editor.js"></SCRIPT>
В этом файле(editor.js) в первой строке есть запись
var Content = "<b>C</b>ontent <b>E</b>xample";
Так вот. мне бы надо в эту переменную вписать текст из html файла .
На этом форуме есть такая же тема, только для 0.3 версии скрипта.
Вот ссылка на неё
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=21463&page=0
Пробовал внедрить PHP скрипты? которые там указаны, в файл editor.js. IE ругается.
Если вставлять PHP скрипт в файл index.html, то как передать итоговое значение в файл editor.js я не знаю. Помогите пожалуйста...

  Ответить  
 
 автор: sim5   (11.01.2009 в 20:21)   письмо автору
 
   для: blackcement   (11.01.2009 в 19:45)
 

Можно указать РНР обрабатывать файлы с расширеним .js, можно обращаться к js как php файлу (то есть он выдает js сценарий)... Ну а в самом таком файле обрабатывать РНР сценарий и результат вставялть в JS.

  Ответить  
 
 автор: blackcement   (12.01.2009 в 01:29)   письмо автору
 
   для: sim5   (11.01.2009 в 20:21)
 

А нельзя-ли поподробней, а то я не очень разбираюсь в этом.

  Ответить  
 
 автор: sim5   (12.01.2009 в 04:08)   письмо автору
 
   для: blackcement   (12.01.2009 в 01:29)
 

Много и подробно не буду, можете поискать в сети о более подробном, а сам же принцип не отличается чем-то радикальным от того, как если бы вы обрабатывали обычный текстовый файл и отдавали пользователю по запросу. Например, ваша динамическая страница содержит встроенный и подключаемые JS сценарии:
<html>
<head>
 <!-- подключаемый сценарий
 обращение к файлу РНР, который будет его формировать -->
 <script type="text/javascript" src="script.php"></script>
 <?php
  
//РНР-переменные и их обработка
  //для дальнейшей передачи во встроенный JS-сценарий 
  
$n 15;
  
$k 3;
  
$m $n $k;
  
$s "All OK!";
 
?>
<!-- это встроенный JS-сценарий -->
 <script type="text/javascript">
  function showMath() {
    var n = 5;
    //передаем (встраиваем) РНР-переменные в JS
    alert(<?php echo $m?> / n);
    //обратите внимание на кавычки для строковой JS-переменной
    //переменная РНР "встраивается" между ними
    alert("<?php echo $s?>")
  }
 </script>
</head>
<body>
<!-- выполняем подключаемый сценарий JS -->
<input type="button" value="Show Var" onclick="showVar()"><br>
<!-- выполняем встроенный сценарий JS -->
<input type="button" value="Show Math" onclick="showMath()">
</body>
</html>

А это содержание РНР-сценария, который отдает браузеру подключаемый JS-сценарий:
<?php
$s1 
"Привет JS";
$s2 " от РНР!";
$s3 $s1 $s2;
header("Content-type: text/javascript");
echo 
"var str = \"" .$s3"\"
function showVar() {
  alert(str)
}"
;
?>

Обратите внимание на передаваемый заголовок типа. Замечено, что без его пердачи IE может лажать иногда. Кроме того, что запрос на подключение JS-сценария может быть как обращение к РНР файлу, он помимо этого, естественно, может содержать и параметры, например:
<script type="text/javascript" src="script.php?a=14&b=25"></script>
принимая и обрабатывая которые, можно будет отдавать тот или иной JS-сценарий, встраивать те или иные переменные, или результат тех или иных вычислений, и т.п.. Естественно, если указать РНР обработку файлов с расширением .js, то подключение может выглядеть традиционно:
<script type="text/javascript" src="script.js?a=14&b=25"></script>
В свою очередь РНР-сценарий обрабатывающий и выдающий браузеру JS-сценарий, может использовать подключения файлов по условию, которые будут принимать переменные, то есть типа готовых JS-шаблонов для тех или иных ситуаций.
Подобным образом можно формировать и подключать не только JS-сценарии, но и файлы стилей - CSS.

  Ответить  
 
 автор: elenaki   (12.01.2009 в 10:11)   письмо автору
 
   для: blackcement   (11.01.2009 в 19:45)
 

файл editor.js назвать editor.php

var Content = "<b>C</b>ontent <b>E</b>xample";  меняем на
var Content = "<? echo "любой техт или код, который формируется рhр-скриптом.";?>";

уже столько раз это разжевывали...

  Ответить  
 
 автор: blackcement   (12.01.2009 в 19:39)   письмо автору
 
   для: elenaki   (12.01.2009 в 10:11)
 

Всё то что sim5 мне описал, я понял. Всё работает. Но куда он потерял файл editor.js ? Если делать так как говорит elenaki : "файл editor.js назвать editor.php" и вверу кода в этом файле вписать PHP код , о IE говорит, что во 2-й строке 1-симв ошибка(там где начинает объявляться первая php переменная). Простите пожалуйста за то что я такой глупый, но попробуйте пожалуйста мне ещё раз объяснить, очень прошу...

Вот у меня есть 3 файла

index.html
<html> 
   <body> 
   <SCRIPT src="editor.js"></SCRIPT>
   </body> 
</html> 


editor.js
var Content = "HELP";


open.php
<?  
Error_Reporting
(E_ALL & ~E_NOTICE); 
$filename="index.html"
  
// otkrivaem  
  
$file fopen($filename"r");   
  
// chitaem  
  
$buffer fread($filefilesize($filename));   
  
// zakrivaem  
  
fclose($file);   
?>   



Мне необходимо чтобы при первом запуске скрипта(а он, как я понимаю, должен начать выполняться сразу же посте загрузки страницы) , переменной Content было присвоено значение переменной $buffer). Но так чтобы JS остался подключенным а не встроенным.
Как мне это сделать?

  Ответить  
 
 автор: elenaki   (12.01.2009 в 20:04)   письмо автору
 
   для: blackcement   (12.01.2009 в 19:39)
 

а <? в начале и ?> в конце вновь созданного (вернее, переименованного) файла editor.php вы вставили? у РНР есть свой синтаксис и если его не соблюдать, то будут сообщения об ошибках.

a то, что вы в последнем сообщении написали, вообще ни в какие ворота не лезет - запустить скрипт (подозреваю, что имеется ввиду open.php), в котором в переменную читается файл index.html, имеющий внутри подключение редактора java-script. т.е. по-вашему, переменной buffer, которая определяется и работает в файле editor.js, надо присвоить содержимое html-файла, в котором этот редактор (java-script! использующий переменную Content!) подключен как внешний файл.. бред

Пошла Машенька по грибы, да по ягоды. Вернулась ни с чем. Потому что надо ставить перед собой конкретные цели.

  Ответить  
 
 автор: blackcement   (12.01.2009 в 20:23)   письмо автору
 
   для: elenaki   (12.01.2009 в 20:04)
 

Извините, поторопился и код забыл изиенить. Я в файле open.php другое имя файла впишу page.html.
В итоге open php
<?   
Error_Reporting
(E_ALL & ~E_NOTICE);  
$filename="page.html";  
  
// otkrivaem   
  
$file fopen($filename"r");    
  
// chitaem   
  
$buffer fread($filefilesize($filename));    
  
// zakrivaem   
  
fclose($file);    
?>    

  Ответить  
 
 автор: blackcement   (12.01.2009 в 20:31)   письмо автору
 
   для: elenaki   (12.01.2009 в 20:04)
 

Так по Вашему файл editor.php должен выглядеть так?
<?  
Error_Reporting
(E_ALL & ~E_NOTICE); 
$filename="files/index.html"
  
// otkrivaem  
  
$file fopen($filename"r");   
  
// chitaem  
  
$buffer fread($filefilesize($filename));   
  
// zakrivaem  
  
fclose($file);   

var 
Content "<? echo  $buffer ?>"; ; 
?>  


А подключить его в index.html так?
 <script type="text/javascript" src="editor.php"></script> 

  Ответить  
 
 автор: elenaki   (12.01.2009 в 20:37)   письмо автору
 
   для: blackcement   (12.01.2009 в 20:31)
 

Так по Вашему файл editor.php должен выглядеть так?

так по логике. только там все-таки не index.html должен подгружаться...
и все остальное, что после контента вы, конечно, не забудете добавить...
кстати, последняя строка должна быть ВНЕ РНР, это уже java-script пошел:
надо ТАК -
?>
 var Content = "<? echo  $buffer ?>"; 
.... далее все то, что было в editor.js


да вам все равно с таким обилием открывающих и закрывающих тэгов рнр ошибку бы выдал...

  Ответить  
 
 автор: blackcement   (13.01.2009 в 00:13)   письмо автору
 
   для: elenaki   (12.01.2009 в 20:37)
 

Я так уже пробовал, ничего не получилось... Но попробовал снова и всё ок(наверно руки не оттуда ростут). Всё, программа приняла внедрённый php скрипт. Но возникла такая ошибка в файле editor.php :

Строка: 4
Символ: 28
Ошибка: Незавершённая строковая константа
Код: 0


У меня IE-7. У него отсчёт строк идёт с нуля или с единицы? А отсчёт символов? Обычно в программировании с нуля начинается(я конечно понимаю, что нового Вам этим не сказал) Как исправить эту ошибку?

  Ответить  
 
 автор: Trianon   (13.01.2009 в 09:34)   письмо автору
 
   для: blackcement   (13.01.2009 в 00:13)
 

это не в файле editor.php
Это в HTML.-коде страницы, сгенерированной скриптом editor.php
Соответственно строки нужно считать по этому коду.

Почему, интересно, так много людей считает, что стоит [любой] текст окружить кавычками, и его тут можно присваивать переменной?

  Ответить  
 
 автор: elenaki   (13.01.2009 в 10:46)   письмо автору
 
   для: blackcement   (13.01.2009 в 00:13)
 

надо избавиться от переносов строк, переменная Content должа содержать ОДНУ строку. и
экранировать спецсимволы. у JS тоже есть свои правила.

  Ответить  
 
 автор: blackcement   (13.01.2009 в 17:43)   письмо автору
 
   для: elenaki   (13.01.2009 в 10:46)
 

Я так понял спецсимволы это < ? и ?> . А перенос строк где? Так всё таки, какую строку я должен присвоить переменной Content ? Может тогда проще поспрашивать у людей JS выполняющий ту же функцию что и нами встраиваемый php ? Способ решения этой проблемы есть или нет?

  Ответить  
 
 автор: elenaki   (13.01.2009 в 18:58)   письмо автору
 
   для: blackcement   (13.01.2009 в 17:43)
 

проблема в том, что вы не знаете ни java-script ни РНР, но беретесь делать на них программы.

<? и ?> к JS никакого отношения не имеют. перенос строк надо убирать в файле, который вы читаете скриптом и заносите его содержимое в пременную Content.

вам проще будет нанять кого-то, кто знает и то и другое и сделает. проблем никаких нет. решение на поверхности. учите матчасть.

  Ответить  
 
 автор: blackcement   (13.01.2009 в 20:30)   письмо автору
 
   для: elenaki   (13.01.2009 в 18:58)
 

Я не берусь создавать программы PHP и JS . Мне всего лишь надо было сделать чтобы она открывала файлы, и мне посоветовали этот форум. И я знаю что <? и ?> к JS никакого отношения не имеют. Мы не правильно друг-друга поняли просто. А то что я понимаю плохо в PHP и JS я и сам знаю. Я понял что Вы имели ввиду. про перенос строки в редактируемом файле. Фиг с ним, я скрипт переделаю так чтобы он сохранял редактируемый файл в одну строку. Но как же быть с кавычками, знаками равно и прочей нечистью в редактируемом документе? Переменная Content не принимает строки с этими символами. И всё же, как быть с много строчными файлами? Судя по Вашей последней строчке, наш диалог наверное прервётся, но спасибо и на том.

  Ответить  
 
 автор: sim5   (13.01.2009 в 20:37)   письмо автору
 
   для: blackcement   (13.01.2009 в 20:30)
 

addcslashes()

  Ответить  
 
 автор: Trianon   (13.01.2009 в 20:51)   письмо автору
 
   для: blackcement   (13.01.2009 в 20:30)
 

<?php

$var 
file_get_contents(__FILE__);
$var = (mysql_escape_string($var));
echo 
"<"."script type=\"text/javascript\">
  str = \"
$var\";
  alert(str);
  <"
."/script>";


  
?>


лексическое разбиение тегов script , конечно, лучше тоже описать функцией.
Да и разбиение на строки разумной длины не помешает.

  Ответить  
 
 автор: blackcement   (13.01.2009 в 21:20)   письмо автору
 
   для: Trianon   (13.01.2009 в 20:51)
 

Как это применить? Какая переменная и чем в итоге является?
<?php 

$var 
file_get_contents(__FILE__); 
$var = (mysql_escape_string($var)); 
echo 
"<"."script type=\"text/javascript\"> 
  str = \"
$var\"; 
  alert(str); 
  <"
."/script>"


  
?> 


А это куда?
addcslashes()

  Ответить  
 
 автор: sim5   (13.01.2009 в 21:26)   письмо автору
 
   для: blackcement   (13.01.2009 в 21:20)
 

elenaki была права. Куда хотите туда и пихайте, ну как вам объяснить то, чего вы просто не понимаете?
Строковая переменная в JS должна быть прописана одной строкой, либо разбита на несколько соединеним ее с помощью +. Что касается функции указанной, то вы хоть не поленились зайти и почитать чего она делает?

  Ответить  
 
 автор: blackcement   (14.01.2009 в 17:14)   письмо автору
 
   для: sim5   (13.01.2009 в 21:26)
 

Ладно, кто сможет дописать недостающее??? И сколько это будет стоить?

  Ответить  
 
 автор: blackcement   (14.01.2009 в 19:00)   письмо автору
 
   для: blackcement   (11.01.2009 в 19:45)
 

Всё, я нашёл выход.. Даже не использовал php. Только JS! Получается эта программа будет работать даже на бесплатных хостингах... Ура! Ура! Ура!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования