草庐IT

replacement_method

全部标签

PHP:str_replace() 中的 "... variables can be passed by reference"?

我创建了一个函数来打印一个包含变量的prepared-statement-sql-string,基于我在另一个StackOverflowquestion中找到的内容.这是我的代码:foreach($paramsas$idx=>$param){if($idx==0)continue;$sql=str_replace('?',"'".$param."'",$sql,1);}printError($sql);当我运行它时,我得到:fatalerror:第3行只能通过引用传递变量。但是当我使用$sql=preg_replace('/\?/',"'".$param."'",$sql,1);对于第

php - 为什么 $_SERVER ['REQUEST_METHOD' ] 总是 GET?

我对此有点困惑。我希望这是我错过的非常明显的事情!我有一个非常简单的表格:注意此页面位于/page并在以下HTML之后回显:在/page上,我在文件的最顶部有这个:出于某种原因,当我提交此表单时,它总是显示为GET。如果我取出action="/page"部分,那么它会显示为POST。我在这里缺少什么?注意:即使我加载页面,然后在上面的var_dump()调用后退出,它仍然显示GET。在检查员的时间表中,我看到了这个请求: 最佳答案 感谢对我的问题的评论,我在apache配置中找到了答案。看来,因为index.php文件位于名为pag

php - 为什么 $_SERVER ['REQUEST_METHOD' ] 总是 GET?

我对此有点困惑。我希望这是我错过的非常明显的事情!我有一个非常简单的表格:注意此页面位于/page并在以下HTML之后回显:在/page上,我在文件的最顶部有这个:出于某种原因,当我提交此表单时,它总是显示为GET。如果我取出action="/page"部分,那么它会显示为POST。我在这里缺少什么?注意:即使我加载页面,然后在上面的var_dump()调用后退出,它仍然显示GET。在检查员的时间表中,我看到了这个请求: 最佳答案 感谢对我的问题的评论,我在apache配置中找到了答案。看来,因为index.php文件位于名为pag

php - 如果仅将有效的 UTF-8 编码字符串作为参数给出 str_replace 是否可以安全地用于 UTF-8 编码字符串?

PHP的str_replace()仅适用于ANSI字符串,因此可以破坏UTF-8字符串。但是,考虑到它是二进制安全的,如果只给它提供有效的UTF-8字符串作为参数,它还能正常工作吗?编辑:我不是在寻找替代函数,我只是想知道这个假设是否正确。 最佳答案 是的。UTF-8被特意设计为允许这种和其他类似的非Unicode感知处理。在UTF-8中,表示有效字符的任何非ASCII字节序列始终以\xC0-\xFF范围内的字节开头。此字节可能不会出现在序列中的任何其他位置,因此您无法创建与字符的一部分匹配的有效UTF-8序列。旧的多字节编码不是这

php - 如果仅将有效的 UTF-8 编码字符串作为参数给出 str_replace 是否可以安全地用于 UTF-8 编码字符串?

PHP的str_replace()仅适用于ANSI字符串,因此可以破坏UTF-8字符串。但是,考虑到它是二进制安全的,如果只给它提供有效的UTF-8字符串作为参数,它还能正常工作吗?编辑:我不是在寻找替代函数,我只是想知道这个假设是否正确。 最佳答案 是的。UTF-8被特意设计为允许这种和其他类似的非Unicode感知处理。在UTF-8中,表示有效字符的任何非ASCII字节序列始终以\xC0-\xFF范围内的字节开头。此字节可能不会出现在序列中的任何其他位置,因此您无法创建与字符的一部分匹配的有效UTF-8序列。旧的多字节编码不是这

php - preg_replace 如何仅替换选择器内匹配的 xxx($1)yyy 模式

我正在尝试使用正则表达式仅删除字符串的匹配部分。我正在使用preg_replace函数,并尝试通过在匹配部分周围放置括号来删除匹配的文本。示例:preg_replace('/text1(text2)text3/is','',$html);不过,这会将整个字符串替换为''。我只想删除text2,但保持text1和text3不变。如何仅匹配和替换匹配的字符串部分? 最佳答案 使用backreferences(即括号)仅保留您想要记住的表达式部分。您可以使用$1、$2等调用替换字符串中的内容:preg_replace('/(text1)t

php - preg_replace 如何仅替换选择器内匹配的 xxx($1)yyy 模式

我正在尝试使用正则表达式仅删除字符串的匹配部分。我正在使用preg_replace函数,并尝试通过在匹配部分周围放置括号来删除匹配的文本。示例:preg_replace('/text1(text2)text3/is','',$html);不过,这会将整个字符串替换为''。我只想删除text2,但保持text1和text3不变。如何仅匹配和替换匹配的字符串部分? 最佳答案 使用backreferences(即括号)仅保留您想要记住的表达式部分。您可以使用$1、$2等调用替换字符串中的内容:preg_replace('/(text1)t

php - 在 IIS 上将表单发布到 PHP 时,导致 HTTP 405 "invalid method (HTTP verb)"错误的原因是什么?

我在PHP(5.2.9-1)应用程序中有一个表单,导致IIS(Microsoft-IIS/6.0)在POST时抛出以下错误:Thepageyouarelookingforcannotbedisplayedbecauseaninvalidmethod(HTTPverb)wasusedtoattemptaccess.这是一个HTTP405状态代码。应用程序中的所有其他表单都有效,因此我相信PHP页面的IIS'verbs'设置是正确的。这是客户的服务器,我无权验证设置或测试代码。我所能做的就是发送客户替换文件。IIS服务器上的其他客户没有此类问题。表格非常简单:...fields...什么会

php - 在 IIS 上将表单发布到 PHP 时,导致 HTTP 405 "invalid method (HTTP verb)"错误的原因是什么?

我在PHP(5.2.9-1)应用程序中有一个表单,导致IIS(Microsoft-IIS/6.0)在POST时抛出以下错误:Thepageyouarelookingforcannotbedisplayedbecauseaninvalidmethod(HTTPverb)wasusedtoattemptaccess.这是一个HTTP405状态代码。应用程序中的所有其他表单都有效,因此我相信PHP页面的IIS'verbs'设置是正确的。这是客户的服务器,我无权验证设置或测试代码。我所能做的就是发送客户替换文件。IIS服务器上的其他客户没有此类问题。表格非常简单:...fields...什么会

php - 如何使用 preg_replace_callback?

我有以下HTML语句[otsection]Wallpapers[/otsection]WALLPAPERSGOHERE[otsection]Videos[/otsection]VIDEOSGOHERE我想要做的是用htmldiv替换[otsection]标签。问题是我想将div的id从1->2->3等递增。所以比如上面的语句应该翻译成WallpapersWALLPAPERSGOHEREVideosVIDEOSGOHERE据我研究,最好的方法是通过preg_replace_callback在每次替换之间增加id变量。但经过1小时的工作后,我无法让它工作。对此的任何帮助将不胜感激!