web2py составляет 265 кбайт исходного кода, и все включено 1.2 МБ (сравните с 4.6 МБ Django). Все же web2py сделает все, в чем Вы нуждаетесь (управляйте сессией, cookie, запросом, ответом, кэшем, интернационализацией, ошибками/билетами, абстракцией базы данных для GAE, SQLite, MSSQL, MySQL, Пост-ГРЭС, Oracle, FireBird, и т.д.), этому не нужна установка - просто разархивировали и нажимают на него - и можно сделать разработку в браузере.
Web2py имеет оба маршрута и обратные маршруты.
Web2py имеет иерархический шаблон системы, что означает, что представление может расширить расположение, которое может расширить другое расположение, и т.д. представления могут также включать другие представления.
Попробуйте эту функцию:
function isValid($str) {
return !preg_match('/[^A-Za-z0-9.#\\-$]/', $str);
}
[^ A-Za-z0-9. # \ - $]
описывает любой недопустимый символ. Если preg_match
находит совпадение (недопустимый символ), он вернет 1 и 0 в противном случае. Кроме того, ! 1
является ложным , а ! 0
является истинным . Таким образом, isValid
возвращает false , если обнаружен недопустимый символ, и true в противном случае.
Семейство функций preg
немного быстрее, чем ereg
. Чтобы проверить недопустимые символы, попробуйте что-нибудь вроде:
if (preg_match('/[^a-z0-9.#$-]/i', $buffer)) print "Invalid characters found";
preg_match быстрее и мощнее, чем ereg:
if(preg_match('/^[^a-z0-9\.#\-\$]*$/i', $sString) > 0) //check if (doesn't contain illegal characters) is true
{
//everything's fine: $sString does NOT contain any illegal characters
}
или измените его:
if(preg_match('/[a-z0-9\.#\-\$]/i', $sString) === 0) //check if (contains illegal character) is false
{
//everything's fine: $sString does NOT contain any illegal characters
}
Вы захотите перейти на использование preg
вместо ereg
. Семейство функций ereg
устарело, и (начиная с php 5.3) их использование будет вызывать предупреждение PHP, и вскоре они будут удалены с языка. Кроме того, неофициально было сказано, что функции preg в целом быстрее, чем ereg.
Что касается скорости, то, исходя из моего опыта и кодовых баз, которые я видел за свою карьеру, оптимизация такой производительности строк была бы преждевременной. на данном этапе. Оберните сравнение в какую-нибудь логическую функцию или метод
//pseudo code based on OP
function isValidForMyNeeds($buffer)
{
if (ereg("[A-Za-z0-9]\.\#\-\$", $buffer) === false)
{
echo "buffer only contains valid characters: a-z, A-Z, 0-9, #, -, ., $";
}
}
, а затем, когда / если вы определите, что это проблема производительности, вы можете применить любую необходимую оптимизацию в одном месте.
Используйте preg isntead, его быстрее и ereg производство прекращено.