|
|
|
| Помогите пожалуйста, у меня постоянно вылетает эта ошибка:
Parse error: syntax error, unexpected T_VARIABLE in C:\Apache2\htdocs\do.php on line 40
Сам файл:
<?php
session_start();
if(!$_SESSION["name"])
header("Location: /");
Class Bot {
var $db;
function convertText() { // Раздяляет строку на слова, формирует массив из слов, выясняет количество слов и какое это предложение.
$text=trim(strtolower(addslashes($_POST["text"])));
$arrd=explode(" ", $text);
$arrds=sizeof($arrd)-1;
for($i=0;$i<=$arrds;$i++) {
$arrd[$i]=trim($arrd[$i]);
if(strlen($arrd[$i])>0) {
$arr[0]++;
$arr[$arr[0]]=$arrd[$i];
}
}
if($arr[$arr[0]]) {
$temp=strlen($arr[$arr[0]]);
$temp=substr($arr[$arr[0]], $temp-1, $temp);
if($temp=="?")
$arr["QUESTION"]=true;
else
$arr["QUESTION"]=false;
$arr[$arr[0]]=substr($arr[$arr[0]], 0, strlen($arr[$arr[0]])-1);
$arr["SIZE"]=$arrds;
$arr["TEXT"]=$text;
}
unset($text,$arrd,$arrds,$temp);
return $arr;
} // End function convertText
function isAddDictionaryWordCorrectly($arr) { // Убеждаемся, что данное предложение корректно для добавления слов в словарь
if($arr["SIZE"]<4) return false; else return true;
}
function compileStringFromMas($arr) { // Формируем SQL-запрос для записи обозначения в базу данных
$sql="INSERT INTO dictionary(wrd, val) VALUES('$arr[2]', '";
for($i=3;$i<=$arr["SIZE"];$i++) { // В цикле объединяем элементы для записи в строку
$sql.=" ";
$sql.=$arr[$i];
}
$sql.="');";
return $sql;
}
function startConvert($arr) { // Начинаем обработку
$this->db=sqlite_open("dictionary.db");
if(!$this->db)exit;
if($arr[1]=="у") { // Надо в словарь добавить следующее слово
if( isAddDictionaryWordCorrectly($arr) ) { // Проверяем на корректность добавления записи
$sql="SELECT * FROM dictionary WHERE wrd='".$arr[2]."';"
$query=@sqlite_query($this->db, $sql);
if(!$query) exit;
if(sqlite_num_rows($query)<1) { // Нужно добавить строку
$sql=compileStringFromMas($arr);
$query=@sqlite_query($this->db, $sql);
if(!$query) exit;
$COMPLETE="<b>".$arr["TEXT"]."</b><br>Я понимаю.";
}
}
}
return $COMPLETE;
} // End function startConvert
} // End class Bot
$objBot=new Bot();
$arr=$objBot->convertText();
echo $objBot->startConvert($arr);
?>
|
Ужас... Ну где же ты, ошибка?!(( | |
|
|
|
|
|
|
|
для: as67ji
(10.10.2009 в 14:50)
| | VALUES('$arr[2]', '"; | |
|
|
|
|
|
|
|
для: Diplex
(10.10.2009 в 14:56)
| | И что в этом неправильного?.. | |
|
|
|
|
|
|
|
для: As67ji
(10.10.2009 в 15:01)
| | А не, недосмотрел, что у Вас там через умную технологию сделано, и думал, что скобку не закрыли :)
Тогда вот ещё:
$sql="SELECT * FROM dictionary WHERE wrd='".$arr[2]."';"
|
; - надо в конце поставить, а не как у Вас...
и можно попробовать здесь:
после скобки, убрать - ; | |
|
|
|
|
|
|
|
для: Diplex
(10.10.2009 в 15:02)
| | ";" в запросе игнорируется, так что ИМХО убирать не критично. | |
|
|
|
|
|
|
|
для: as67ji
(10.10.2009 в 14:50)
| | Была ошибка в строке #49: ";" отсутствовала в конце запроса после кавычки(").
Вот правильнй код(по крайней мере у меня работает без ошибок):
<?php
session_start();
if(!$_SESSION["name"])
header("Location: /");
Class Bot {
var $db;
function convertText() { // Раздяляет строку на слова, формирует массив из слов, выясняет количество слов и какое это предложение.
$text=trim(strtolower(addslashes($_POST["text"])));
$arrd=explode(" ", $text);
$arrds=sizeof($arrd)-1;
for($i=0;$i<=$arrds;$i++) {
$arrd[$i]=trim($arrd[$i]);
if(strlen($arrd[$i])>0) {
$arr[0]++;
$arr[$arr[0]]=$arrd[$i];
}
}
if($arr[$arr[0]]) {
$temp=strlen($arr[$arr[0]]);
$temp=substr($arr[$arr[0]], $temp-1, $temp);
if($temp=="?")
$arr["QUESTION"]=true;
else
$arr["QUESTION"]=false;
$arr[$arr[0]]=substr($arr[$arr[0]], 0, strlen($arr[$arr[0]])-1);
$arr["SIZE"]=$arrds;
$arr["TEXT"]=$text;
}
unset($text,$arrd,$arrds,$temp);
return $arr;
} // End function convertText
function isAddDictionaryWordCorrectly($arr) { // Убеждаемся, что данное предложение корректно для добавления слов в словарь
if($arr["SIZE"]<4) return false; else return true;
}
function compileStringFromMas($arr) { // Формируем SQL-запрос для записи обозначения в базу данных
$sql="INSERT INTO dictionary(wrd, val) VALUES('$arr[2]', '";
for($i=3;$i<=$arr["SIZE"];$i++) { // В цикле объединяем элементы для записи в строку
$sql.=" ";
$sql.=$arr[$i];
}
$sql.="');";
return $sql;
}
function startConvert($arr) { // Начинаем обработку
$this->db=sqlite_open("dictionary.db");
if(!$this->db)exit;
if($arr[1]=="у") { // Надо в словарь добавить следующее слово
if( isAddDictionaryWordCorrectly($arr) ) { // Проверяем на корректность добавления записи
$sql="SELECT * FROM dictionary WHERE wrd='".$arr[2]."';";
$query=@sqlite_query($this->db, $sql);
if(!$query) exit;
if(sqlite_num_rows($query)<1) { // Нужно добавить строку
$sql=compileStringFromMas($arr);
$query=@sqlite_query($this->db, $sql);
if(!$query) exit;
$COMPLETE="<b>".$arr["TEXT"]."</b><br>Я понимаю.";
}
}
}
return $COMPLETE;
} // End function startConvert
} // End class Bot
$objBot=new Bot();
$arr=$objBot->convertText();
echo $objBot->startConvert($arr);
?>
|
| |
|
|
|