9.08.2011 / 00:23 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Tehnom (08.08.2011/21:29) web_demon, Так мне надоЛучше просто создай файл с любым именем (например через file_put_contents() ) и работай с ним, а то это функция ведет себя по разному в зависимости от сервера и версии пыха, так что не вижу смысла использовать ее вообще. Но если так уж хочется, то вот тебе нагугленный примерчик, а то самому лень писать: $tmpfname = tempnam ("/tmp", "FOO"); // tempnam ("Где создаем", "Префикс");
$fp = fopen($tmpfname, "w");
fwrite($fp, "writing to tempfile");
fclose($fp);
// здесь сделать чего-нибудь
unlink($tmpfname);
|
9.08.2011 / 06:45 | |
Tehnom Пользователь Сейчас: Offline
Имя: Алексей Откуда: Славянск-на-кубани Регистрация: 28.12.2010
| web_demon, Спасибо
|
9.08.2011 / 09:14 | |
Chez Пользователь Сейчас: Offline
Имя: Павел Регистрация: 30.01.2020
| demiurg, Поставь в базе сравнение в том поле, в которое вносиш данные на utf8_general_ci
|
10.08.2011 / 06:48 | |
demiurg Пользователь
| Chez спасибо за совет,но там сам скрипт скажем так не совсем нормальный. Дело в том,что ники пользователей и имена пользователей,берутся из одного файла,а по условию ники должны быть в транслите(так двиг сделан) поэтому когда пишешь кирилицей он их просто не воспринимает,пишет в файле найдено 0 уникальных имен. Так,что надо переделывать сам скрипт.
|
13.08.2011 / 20:02 | |
Лека Пользователь Сейчас: Offline
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| Всем привет. Помогите кто сможет. Пыталась сделать подсветку синтаксиса в пыхе,но не получилось. Пыталась примерно так if($format=='php')
{
$text=file($file);
$str_text=count($text);
for($i=0;$i<$str_text;$i++)
{
error_reporting (0);
function highlight_code($code ) {
$code = stripslashes ($code );
if(!strpos ($code ,"<?" ) && substr ($code ,0,2)!="<?" ) { $code ="<?php\\n" .trim ($code )."\\n?>" ;
} $code = trim ($code );
return highlight_string ($code ,true );
}
$code=htmlspecialchars($text[$i])
echo highlight_code($code);
}
}
Изменено P@bloid (13.08 / 20:03) (всего 1 раз) |
13.08.2011 / 20:39 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Лека, а зачем циклом проходить по каждой строке файла? Да еще в самом же цикле создавать функцию? И в 14 строке нет точки с запятой. В общем правильно так: if($format=='php')
{
function highlight_code($code)
{
$code = trim($code);
$code = substr($code, 0, 2) != "<?" ? $code = "<?php\n" . $code . "\n?>" : $code;
return highlight_string($code ,true);
}
$text=file_get_contents($file);
echo highlight_code($text);
}
А еще правильнее использовать функцию highlight_file(); Тогда все это можно будет сократить до if($format=='php')
highlight_file($file);
Изменено web_demon (13.08 / 20:40) (всего 1 раз) |
13.08.2011 / 21:49 | |
Лека Пользователь Сейчас: Offline
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| web_demon, тоесть этого достаточно?if ($format =='php') highlight_file ($file );я чегото не пойму,вроде выводить всеравно надо через принт или через ечо,не важно,сейчас попробую первый вариант. Есть еще вопрос. Надо заменить строку в файле. Делала так: {
$text=file($file);
$str_text=count($text);
for($i=0;$i<$str_text;$i++)
{
echo "<b>".$i.":</b>";
echo "<a href='mpc_str_edit.php?str=".$text[$i]."&line=".$i."'>".htmlspecialchars($text[$i])."</a><br/>";
}
if(isset($_POST['rep_str'])){
$text=file($file);
$line=($_POST['line']);
$file[$line]=($_POST['rep_str']);
}
в файле mpc_str_edit.php такой код: 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 Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Лека, я чегото не пойму,вроде выводить всеравно надо через принт или через ечо,Эта функция все подсветит и выведет. Не надо никаких 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
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| 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
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| web_demon, на твой пост ( 13.08.2011 / 22:37) отвечу, спасибо,в файл то я и не писала,думала что если я взяла массив файла то элемент массива изменится и в самом файле,а скобок там хватает,просто весь код явно в пост не вместится.я все проверяю валидатором,но часто ошибок нет,но только в синтаксе и код работает без ошибок но и без пользы. |