Добрый день. В общем требуется создать такой скрипит, который бы записывал в переменную первые 10 строк файла text.txt, затем заменял бы все слова «ready» на «all. ready» и записывал бы эту переменную в файл text2.txt, при этом удаляя из файла text2.txt всё, что там было. Пробовал делать так, невышло: <?php $i = 0; $h = fopen("text.txt","r"); while ($i <= 9) { $content .= fgets($h); $content .= "\r\n"; $i++; } fclose($h); $content=ereg_replace('ready','all. ready',$text); // 5 $w=fopen("text2.txt","r"); fwrite($w,$content); fclose($w); ?> PS: извиняюсь, если глупость, я начал учить php позавчера.
spamoney,проверяй входные данные.Какой тип они имеют Добавь строчку PHP: is_string($var_name) or die('Переменная '. $var_value. ' не имеет строковой тип!'); //Тут уже смотри на свой вкус,ставить die() или ещё что нибудь после этой Code: foreach ($_GET as $var_name=>$var_value) {
Ion,так? PHP: <?php $fp = fopen('text.txt','r'); for($i=0;$i<=9;$i++) { $content .= fgets($fp); } fclose($fp); $content = str_replace('ready','all. ready',$content); $fp2 = fopen('text2.txt','w'); fwrite($fp2,$content); fclose($fp2); ?>
Да, так. Спасибо большое. Всё работает нормально, но при выполнении скрипта вылезает это: Notice: Undefined variable: content in T:\home\localhost\1234.php on line 4 Что ему в 4-й строке не нравится?
spamoney По хорошему - надо добавить рекурсивную проверку, если в качестве параметра передают массив, ограничив глубину рекурсии скажем 2-3 уровнями (чтобы не заддосили). Если же уверены, что ваша КМС не принимает массивы в качестве параметра, то сделать, как предложил Shadow_p1raT только вместо die вызывать функцию warn_report Ion В начале скрипта добавь $content='';
m0Hze,можно так PHP: <?php $fp = fopen('http://localhost/test/test.txt', 'rt'); $text = 'antichat'; while(!feof($fp)) { if(preg_match('#'.preg_quote($text).'#i', fread($fp, 100))) { echo 'найдено'; break; } } fclose($fp); ?> только вроде требует в php.ini Code: allow url fopen on
PHP: <form method="post" name="form"> <p>Название:<br><input name="a" type="text" size="20"></p> <p>Описание:<br><input name="b" type="text" size="30"></p> <p>Ссылка:<br><input name="s" type="text" size="20"></p> <p>Дата:<br><input name="d" type="text" size="20"></p> <input name="submit" type="submit" value="Добавить"> </form> <? include('../setting/bd.php'); if(isset($_POST['a'])){$a = $_POST['a'];} if(isset($_POST['b'])){$b = $_POST['b'];} if(isset($_POST['s'])){$s = $_POST['s'];} if(isset($_POST['d'])){$d = $_POST['d'];} $result = mysql_query("INSERT INTO includes (a,b,s,d) VALUES('$a','$b','$s','$d')"); if($result == 'true') { echo "Добавлено"; } ?> как сделать чтоб в бд записывало только после нажатия "Добавить" !?
PHP: <form method="post" name="form"> <p>Название:<br><input name="a" type="text" size="20"></p> <p>Описание:<br><input name="b" type="text" size="30"></p> <p>Ссылка:<br><input name="s" type="text" size="20"></p> <p>Дата:<br><input name="d" type="text" size="20"></p> <input name="submit" type="submit" value="Добавить"> </form> <?php if(!empty($_POST['submit'])){ include('../setting/bd.php'); if(isset($_POST['a'])){$a = $_POST['a'];} if(isset($_POST['b'])){$b = $_POST['b'];} if(isset($_POST['s'])){$s = $_POST['s'];} if(isset($_POST['d'])){$d = $_POST['d'];} $result = mysql_query("INSERT INTO includes (a,b,s,d) VALUES('$a','$b','$s','$d')"); if($result == 'true') { echo "Добавлено"; } } ?>
PHP: <?php function vStepen($n,$pokazatel) { if($pokazatel == 0) return 1; if($pokazatel == 1) return $n; $buf = $n; for($i = 1; $i < $pokazatel; $i++) { $n *= $buf; } return $n; } echo vStepen(3,2); ?>
Наверно надо будет в какой то временный файл вставлять или вообще в файл и отдавать его юзеру, ведь пользователь может и с модема сидеть, ну и ресурсы)