Вниз  PHP и мелкие вопросы
- 9.08.2011 / 00:23
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Tehnom (08.08.2011/21:29) web_demon, Так мне надоЛучше просто создай файл с любым именем (например через file_put_contents() ) и работай с ним, а то это функция ведет себя по разному в зависимости от сервера и версии пыха, так что не вижу смысла использовать ее вообще.
Но если так уж хочется, то вот тебе нагугленный примерчик, а то самому лень писать:
  1. $tmpfname = tempnam ("/tmp", "FOO"); // tempnam ("Где создаем", "Префикс");
  2.  
  3. $fp = fopen($tmpfname, "w");
  4. fwrite($fp, "writing to tempfile");
  5. fclose($fp);
  6.  
  7. // здесь сделать чего-нибудь
  8.  
  9. unlink($tmpfname);

- 9.08.2011 / 06:45
Tehnom
  Пользователь

Tehnom 
Сейчас: Offline
web_demon, Спасибо
- 9.08.2011 / 09:14
Chez
  Пользователь

Chez 
Сейчас: Offline
demiurg, Поставь в базе сравнение в том поле, в которое вносиш данные на utf8_general_ci
- 10.08.2011 / 06:48
demiurg
  Пользователь

demiurg 
Chez спасибо за совет,но там сам скрипт скажем так не совсем нормальный. Дело в том,что ники пользователей и имена пользователей,берутся из одного файла,а по условию ники должны быть в транслите(так двиг сделан) поэтому когда пишешь кирилицей он их просто не воспринимает,пишет в файле найдено 0 уникальных имен. Так,что надо переделывать сам скрипт.
- 13.08.2011 / 20:02
Лека
  Пользователь

Лека 
Сейчас: Offline
Всем привет. Помогите кто сможет. Пыталась сделать подсветку синтаксиса в пыхе,но не получилось. Пыталась примерно так
  1. if($format=='php')
  2. {
  3. $text=file($file);
  4. $str_text=count($text);
  5. for($i=0;$i<$str_text;$i++)
  6. {
  7. error_reporting (0);
  8. function highlight_code($code ) {
  9. $code = stripslashes ($code );
  10. if(!strpos ($code ,"<?" ) && substr ($code ,0,2)!="<?" ) { $code ="<?php\\n" .trim ($code )."\\n?>" ;
  11. } $code = trim ($code );
  12. return highlight_string ($code ,true );
  13. }
  14. $code=htmlspecialchars($text[$i])
  15. echo highlight_code($code);
  16. }
  17. }


Изменено P@bloid (13.08 / 20:03) (всего 1 раз)
- 13.08.2011 / 20:39
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Лека, а зачем циклом проходить по каждой строке файла? Да еще в самом же цикле создавать функцию?
И в 14 строке нет точки с запятой.
В общем правильно так:
  1. if($format=='php')
  2. {
  3.    function highlight_code($code)
  4.    {
  5.       $code = trim($code);
  6.       $code = substr($code, 0, 2) != "<?" ? $code = "<?php\n" . $code . "\n?>" : $code;
  7.       return highlight_string($code ,true);
  8.    }  
  9.    $text=file_get_contents($file);
  10.    echo highlight_code($text);
  11. }
А еще правильнее использовать функцию highlight_file();
Тогда все это можно будет сократить до
  1. if($format=='php')
  2.    highlight_file($file);


Изменено web_demon (13.08 / 20:40) (всего 1 раз)
- 13.08.2011 / 21:49
Лека
  Пользователь

Лека 
Сейчас: Offline
web_demon, тоесть этого достаточно?if ($format =='php') highlight_file ($file );я чегото не пойму,вроде выводить всеравно надо через принт или через ечо,не важно,сейчас попробую первый вариант. Есть еще вопрос. Надо заменить строку в файле. Делала так:
  1. {
  2. $text=file($file);
  3. $str_text=count($text);
  4. for($i=0;$i<$str_text;$i++)
  5. {
  6. echo "<b>".$i.":</b>";
  7. echo "<a href='mpc_str_edit.php?str=".$text[$i]."&line=".$i."'>".htmlspecialchars($text[$i])."</a><br/>";
  8. }
  9. if(isset($_POST['rep_str'])){
  10. $text=file($file);
  11. $line=($_POST['line']);
  12. $file[$line]=($_POST['rep_str']);
  13. }
в файле mpc_str_edit.php такой код:
  1. echo "<form method='post' action='mpc_wiev.php'><textarea name='rep_str'>".$_GET['str']."</textarea><input type='hidden' name='line' value=".$_GET['line']."><input type='submit' value='Принять изминение'></form>";
чего я еще за три месяца изучения php не усвоила?

Изменено web_demon (13.08 / 22:14) (всего 2 раза)
- 13.08.2011 / 22:37
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Лека,
я чегото не пойму,вроде выводить всеравно надо через принт или через ечо,Эта функция все подсветит и выведет. Не надо никаких echo.
1) $line=($_POST['line']); - тут не не обязательно ставить скобки, пойдет и так $line=$_POST['line'];
2) $file[$line]=($_POST['rep_str']); в переменной $file содержится не массив строк файла, а имя файла. Массив содержится в переменной $text, а значит надо $text[$line]=$_POST['rep_str'];
3) Ты не записываешь изменения обратно в файл (или не дала мне весь код).
А значит надо добавить
file_put_contents($file, implode('',$text));
4) Проверяй скобки. В первом коде однозначно одной не хватает, либо есть лишняя.

Изменено web_demon (13.08 / 22:38) (всего 1 раз)
- 13.08.2011 / 22:40
Лека
  Пользователь

Лека 
Сейчас: Offline
web_demon, на твой пост (13.08.2011 / 20:39) отвечу, Размер: 0.28 kb Кодировка: UTF-8 syntax error,
unexpected '?'
Ошибка в 5-ой строке 1 fun c t i o n h i gh l i g c o de 2 ( $c o de ) 3 { 4 $ c o de = t r i m( $ c o de ) ; $ c o de = s ub s t r ( $ c o de , 5 0 , 2 ) ! = " < ? " ? $ c o de = " < ? p h p \ n " . $ c o de . " \ n ? > " : $c o de ; 6 r e t u r n h i g 7 s t r i n g ( $ c o de , t r ue ) ; 8 } 9 $ t e x t =f i l e _ ge t _ 1 0 c o n t e n t s ( $ f i l e ) ; e c h o h i gh l i c o de ( $ 1 1 t e x t ) ;
- 13.08.2011 / 22:46
Лека
  Пользователь

Лека 
Сейчас: Offline
web_demon, на твой пост (13.08.2011 / 22:37) отвечу, спасибо,в файл то я и не писала,думала что если я взяла массив файла то элемент массива изменится и в самом файле,а скобок там хватает,просто весь код явно в пост не вместится.я все проверяю валидатором,но часто ошибок нет,но только в синтаксе и код работает без ошибок но и без пользы.
Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)