Сегодня переустановил denwer и запустил скрипт над которым я работал вчера. При этом когда вчера перед сном выключял компьютер то скрипт работал отлично и ни каких ошибок не выдавал. После переустановки он говорит что у меня ошибка: Parse error: syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\test1.ru\www\addwebsite.php on line 62 На этой строке у меня следующий код: Код (Text): $result=eregi_replace("[{\\]","",$result); $result_array[]=$result; //62 строка } else { $result_array[]=$text_array[$i]; } Думаю что проблема может быть в настройках пхп. Но в чем именно не знаю.
Если в регулярке есть желание сделать набор из символов { и \, то надо там четыре бэкслеша использовать. Один для интерпретатора строк PHP (останется два), и один для интерпретатора регулярки. Очень странно, что это работало, потому как по-другому оно не работало никогда
Хорошо, вот код: PS. Краткое описание кода: после добавления адреса и статьи выполняются проверки и если все впорядке то генерируются файлы со статьями. Например если в статье скрипт находит {word1|word2|word3} то он рэндомно выберает одно из слов и так со всей статьей. PHP: <?php session_start(); require("functions.php"); logout(); is_allowed(); showMenus(); if(!empty($_REQUEST['isdone'])) //main if start { $add_url=$_SESSION['add_url']; $add_article=$_SESSION['add_article']; if(!eregi("^(www\.[a-zA-Z0-9-]{2,100}\.[a-zA-Z]{2,100})$",$add_url)) { echo "<br>Error with your URL address"; unset($_SESSION['add_url']); unset($_SESSION['add_category']); unset($_SESSION['add_article']); $message="Please fill in the forms"; showForm1($message); exit(); } else if(eregi("[<>]",$add_article) || empty($add_article)) { echo "<br>Error with your Article"; exit(); } else//=======================ГЕНЕРАЦИЯ ФАЙЛОВ { if(is_dir(websites/$add_url)) { echo "ERROR: Directory is already created"; exit(); } else { $quantity=10;//количество создаваемых файлов if(mkdir("websites/$add_url"))//начало if { $full_text = $add_article; $text_array = explode("}",$full_text); for($quan=1;$quan<=$quantity;$quan++) { for ($i=0;$i<count($text_array);$i++) { if (eregi("({.+\|.+)",$text_array[$i])) ` { $start_num=strpos($text_array[$i],"{"); $all_num=strlen($text_array[$i]); $num_count=$all_num - $start_num; $variations=substr($text_array[$i],$start_num+1,$all_num);//переменная с вырезанной строкой вариаций $variations_array=explode("|",$variations);//массив с вырезанной строкой вариаций $rand=rand(0,count($variations_array)-1); $result=str_replace($variations,$variations_array[$rand],$text_array[$i]); //$result=eregi_replace("[{\\]","",$result); $result_array[]=$result; } else { $result_array[]=$text_array[$i]; } } $string=implode("",$result_array); $fp=fopen("websites/$add_url/$quan.txt","w"); fputs($fp,$string); fclose($fp); unset($result_array); } } }//конец if else { echo "ERROR: Can not create the directory"; exit(); } } }//main if end #Если не введены данные о добавляемом сайте else if(empty($_REQUEST['add_url']) && empty($_REQUEST['add_category']) && empty($_REQUEST['add_article'])) { unset($_SESSION['add_url']); unset($_SESSION['add_category']); unset($_SESSION['add_article']); $message="Please fill in the forms"; showForm1($message); exit(); } #Если введены данные о добавляемом сайте но не введены данные о статье else if (!empty($_REQUEST['add_url']) && !empty($_REQUEST['add_category']) && empty($_REQUEST['add_article'])) { if(eregi("^(www\.[a-zA-Z0-9-]{2,100}\.[a-zA-Z]{2,100})$",$_REQUEST['add_url'])) { $_SESSION['add_url']=$_REQUEST['add_url']; $_SESSION['add_category']=$_REQUEST['add_category']; $message2="Please enter your article"; showFormAddArticle($message2); exit(); } else { $message="ERROR: URL Contains forbidden symbols"; showForm1($message); exit(); } } #Если введены данные о статье else if(!empty($_REQUEST['add_article'])) { if(eregi("[<>]",$_REQUEST['add_article'])) { $message2= "ERROR: Article Contains Forbidden Symbols"; showFormAddArticle($message2); exit(); } else { $_SESSION['add_article']=$_REQUEST['add_article']; echo "<br>Сheck your details and press Finish if everything is ok<br>"; echo <<<HERE URL: $_SESSION[add_url]<br> CATEGORY: $_SESSION[add_category]<br> ARTICLE: $_SESSION[add_article]<br> <form action="addwebsite.php" method="get"> <input type="submit" name="isdone" value="finish"> </form> HERE; } } echo "<hr>"; echo "Session URL: " . $_SESSION['add_url'] . "<br>"; echo "Session CATEGORY: " . $_SESSION['add_category'] . "<br>"; echo "Session ARTICLE: " . $_SESSION['add_article'] . "<br>"; echo "<hr>"; #=========================ФУНКЦИИ function showForm1($mes) { echo <<<HERE <p> $mes <form action="addwebsite.php" method="get"> URL: <input type="text" name="add_url" size="44"><br> Category: <select name="add_category"> <option value="1">Business, Money, Finance, Economy</option> <option value="2">Health, Fitness, Medicine, Sport</option> <option value="2">Computer, Technology, Science, Internet</option> </select><br> <input type="submit" name="button" value="Continue"> </form> HERE; } function showFormAddArticle($mes2) { echo <<<HERE <p> $mes2 <form action="addwebsite.php" method="get"> <textarea name="add_article" rows="20" cols="40"></textarea><br> <input type="submit" name="button" value="Continue"> </form> HERE; } ?>
Скорее всего касяк гдето выше в коде. Например, возможно что переменная $result_array не является массивом.
Вот тут PHP: <? ... for ($i=0;$i<count($text_array);$i++) { if (eregi("({.+\|.+)",$text_array[$i])) ` {
Ахахахаха, точно. Я бы ни когда не заметил этой кавычки, интересно как она туда попала, наверно лунатить начал... Большое спасибо =)