小编J3S*_*TER的帖子

Mysql + php带有特殊字符,如'(撇号)和"(引号)

我一直在努力解决一个小问题.它已存在多年,但这只是一个令人恼火的问题,而不是一个严重的问题,我刚刚解决它.但现在我想知道是否有人可以帮助我.我做了一些谷歌但没有成功.

如果我在一个php文件中从html textarea做一个表单帖子,如下所示:

<form action="http://action.com" method="post">
<textarea name="text"><a href="http://google.com">google's site</a></textarea>
</form>
Run Code Online (Sandbox Code Playgroud)

当然还有一个提交按钮等等.

值是问题:<a href="http://google.com">google's site</a>textarea的值有"(引号)和'(撇号).

要将其保存在mysql_database中,我这样做:

$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".$_POST['text']."') ") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

现在我得到了mysql错误:

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的"站点"附近使用正确的语法

php mysql sql apostrophe

10
推荐指数
2
解决办法
9万
查看次数

捕获所有类型的断言

我需要一个像这样的条件:

try
{
//bug condition
}
catch()
{
//Remove file
}
Run Code Online (Sandbox Code Playgroud)

那就是我创建了一个非常机密的文件,第三方无法查看数据,但是当代码中出现任何错误时,我的文件被删除,因为我不确切知道错误发生的地方.

所以我想使用try和catch来捕获该bug,并希望删除该文件.如何在C++中捕获任何异常?

如果有错误,那将删除文件.

喜欢:

try
{
    char TempArray[10];
    char c = TempArray[11];
}
catch
{
    cout<<"Array out of boundry";
    deleteFile("Confi.txt");
}
Run Code Online (Sandbox Code Playgroud)

c++

8
推荐指数
2
解决办法
6951
查看次数

异常处理中的C++ Else语句

我想知道是否有一个else语句,比如在python中,当附加到try-catch结构时,如果没有抛出/捕获异常,则使其中的代码块只能执行.

例如:

try {
    //code here
} catch(...) {
    //exception handling here
} ELSE {
    //this should execute only if no exceptions occurred
}
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling flow-control

6
推荐指数
2
解决办法
3674
查看次数

C++ 嵌套作用域访问

我最近在cppreference 中看到了这段代码:

string str="global scope";

void main()
{
    string str="main scope";
    if (true){
        string str="if scope";
        cout << str << endl;
    }
    cout << str << endl;
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

if scope
main scope
Run Code Online (Sandbox Code Playgroud)

这很好,我了解整个嵌套作用域的事情,并且我知道当堆栈在语句末尾展开它时, if 作用域内的“str”将被销毁,因此此后它将不可用,因此第二个print 将主“str”作为其参数。

但是,我知道主“str”实际上在 IF 内部可用,或者至少应该是,但问题是如何从 IF 语句内部访问主“str”?

我如何从 main 和/或 if 内部访问全局“str”?

我知道使用不同的名称会更简单,但这个问题不是为了特定的实际应用,而是为了更好地理解 c++ 范围。

c++ scope nested name-hiding

4
推荐指数
1
解决办法
2249
查看次数

更改对象在调试器/检查器变量值表中的显示方式

我想知道是否有我可以在 Pharo 中覆盖的消息,以便我的自定义类在检查器/调试器中显示更多描述性信息,就像简单的变量类型一样,如整数或字符串。例如:

在此处输入图片说明

取而代之的是,我希望它显示由其内部变量组成的更自定义和信息量更大的描述,以便对变量有更紧密/更整洁的视图,而不必单击它并打开另一个图表(因此忽略了上图的信息)。我知道您可以增加下面显示的图表数量,但这不是问题的重点。我想实现这样的目标:

在此处输入图片说明

我浏览了 pharo 论坛,一无所获,我还尝试覆盖 30 多种方法,希望其中一种方法改变了输出。只有class消息似乎改变了输出,但我只能返回一个实例,Metaclass并且除了弄乱这个消息会破坏很多东西。最后,我尝试对调试器和检查器进行逆向工程,以查看在哪个点构造了表以及使用了哪些值或发送了哪些消息来构建所述值,但这对我来说太多了,调用堆栈不断增长并且我什至不能划伤表面。

debugging smalltalk pharo

3
推荐指数
1
解决办法
121
查看次数

功能指针参考

大家好,我正在创建一个List类,以便能够像在python中一样操作数据,但是在c ++中.我想出了一个主意.基本上是一个遍历每个节点的方法,如果它满足特定条件,则删除它.但是我希望这个条件由库的用户决定,所以我实现了一个指向bool函数的指针,它将一个模板数据(与List相同的类型)作为唯一的参数.

到目前为止,我设法运行这个......


.h文件:

int delIf(bool (*)(T));
Run Code Online (Sandbox Code Playgroud)

.cpp文件:

template <typename T>
int List<T>::delIf(bool (*ptr)(T)){
    int tot=0;
    T aux;
    for (int i=0;i<tam;i++)
    {
        aux=(*this)[i]; //Ive overloaded the [], and it works fine
        if ((*ptr)(aux))
        {
            tot++;
            this->del(i);
        }
    }
    return tot;
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中:

#include <iostream>
#include "lists.cpp"

using namespace std;

bool check(int);

int main()
{
    List<int> a;
    for (int i=0;i<10;i++)
        a.push(i);
    a.delIf(&check);

    return 0;
}

bool check(int a){
    if (a%2==0)
        return true;
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是,我想知道是否可能重载delIf方法,以便它不需要指向函数的指针作为参数,而是对它的引用,因此库的用户可以调用:

delIf(check); //No '&' required …
Run Code Online (Sandbox Code Playgroud)

c++ pointers function-pointers reference pass-by-reference

2
推荐指数
1
解决办法
433
查看次数

C++ 智能宏——正则表达式

介绍(如果你不想要,请不要阅读,这只是背景)
我正在为 C++ 创建一个 API,以便它具有类似 python 的功能,而不会失去它的本质。我已经成功开发了一个自动通用异常处理系统(我在这里问如何做到这一点,@MacZamborg 告诉我它是如何工作的,所以我开始从头开始拆除所有东西)。就像我说的,我设法重载了很多东西,以便自动抛出相应的异常(它继承自 std::exception)。我唯一遇到的问题是 ZERO_DIVISION 异常,因为您似乎不能只为整数重载运算符,即参数之一必须是对象。所以我创建了 Object Num,它使用联合来存储任何可用的数字数据)-> 这意味着,我必须重载每个运算符 11 次,所以我想避免需要重载X=运算符。(也在这里问了一些关于它的事情)。


题

有没有办法在任何 IDE 中制作智能宏?什么是智能宏,你可能会问,好吧,让我们假设有一种叫做 C+++ 的新语言,它实现了智能宏 > 智能宏应该像这样 >

#define "regEx" "Literal replacement"
Run Code Online (Sandbox Code Playgroud)

在实践中:

#define '([^\d ]?\w+\s*)\+=' '$groups[0] = $groups[0] + '
Run Code Online (Sandbox Code Playgroud)

随着([^ \ d] \ w + \ S *)作为组数组中的唯一元素(语法来自python的正则表达式,我可能有一些错误,但这个想法是一样的)。regEx 的那部分将匹配任何有效的变量名(包括保留关键字 [不可取,但我们用\+=去掉它们]),也就是说,任何以空格或数字开头的单词,包含任何字符,并以空格(0 或更多)结尾。之后,它查找+=运算符,如果匹配,则将整个匹配替换为'$groups[0] = $groups[0] + ',即在唯一组中找到的任何内容(由括号表示) ), 'space' '=' 'space' '又发现了什么' 'space' '+' …

c++ regex macros

-2
推荐指数
1
解决办法
561
查看次数