草庐IT

php - 正则表达式,只用一个替换多个斜杠

这似乎是一个容易解决的问题,但它并不像看起来那么容易。我在PHP中有这个字符串:////%postname%/这是一个URL,我不想在一行中出现多个斜杠。我永远不想完全删除斜杠。它应该是这样的:/%postname%/因为结构可能看起来不同,我认为我需要一个聪明的preg替换regexp。它需要像这样使用URLS:////%postname%//mytest/test///testing应转换为:/%postname%/mytest/test/testing 最佳答案 给你:$str=preg_replace('~/+~','/',

PHP urlencode - 仅对文件名进行编码并且不要触摸斜杠

http://www.example.com/some_folder/somefile[that]needs"to"be(encoded).zipurlencode($myurl);问题是urlencode也会对斜杠进行编码,这使得URL无法使用。我如何才能只对最后一个文件名进行编码? 最佳答案 试试这个:$str='http://www.example.com/some_folder/somefile[that]needs"to"be(encoded).zip';$pos=strrpos($str,'/')+1;$result=s

PHP - PDO 返回转义斜杠,如何删除它?

我正在用PDO对象做一些选择,但是在fetch结果之后,我得到了带有转义'到\'的字符串,怎么能我禁用它? 最佳答案 您似乎在使用MagicQuotes时遇到了一些问题.您可以通过关注theinstructionshere来禁用它们.强烈建议您禁用它们,而不是通过使用函数仅去除斜线来回避它们。 关于PHP-PDO返回转义斜杠,如何删除它?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

php - PHP 正则表达式模式中需要额外的反斜杠

测试anotheruser'squestion的答案时我发现了一些我不明白的东西。问题是用一个空格替换字符串中的所有文字\t\n\r字符。现在,我尝试的第一个模式是:/(?:\\[trn])+/令人惊讶的是,这不起作用。我在Perl中尝试了相同的模式并且效果很好。经过一些尝试和错误后,我发现PHP需要3或4个反斜杠来匹配该模式,如:/(?:\\\\[trn])+/或/(?:\\\[trn])+/这些模式-令我惊讶的是-都有效。为什么需要这些额外的反斜杠? 最佳答案 您需要4个反斜杠来表示正则表达式中的1,因为:2个反斜杠用于在字符串

php - preg_replace 除了数字、字母、句点和斜杠之外的所有内容?

我有一个正则表达式,可以去掉除字母以外的所有内容。数字和句号。我如何也给它添加前斜线?$targetFile=preg_replace('/[^A-Za-z0-9-.]/','',$targetFileDirty); 最佳答案 您可以通过在前斜杠前加一个反斜杠来转义前斜杠-$targetFile=preg_replace('/[^A-Za-z0-9-.\/]/','',$targetFileDirty);或者,也许更好的是,您可以使用不同的定界符,例如$targetFile=preg_replace('#[^A-Za-z0-9-./

php - Laravel:如何使路由助手返回带有尾部斜杠的 URL?

如何让Laravel5.3创建带有尾部斜杠的路由URL?路由定义为Route::get('/home/',['as'=>'home','uses'=>'HomeController@index']);然后我在View中使用路由辅助函数创建url:{{route('home')}}这会创建http://localhost:8000/home而不是http://localhost:8000/home/。这个问题与Laravel-appendatrailingslashinroutes非常相似,但这个问题也没有答案,在我看来我的描述有点短。编辑:文档中的两种可能的命名方法没有区别:Route

php - 当我在 .php url 后面加上斜杠 (/) 时会发生什么?

我有一个简单的问题,但在任何地方都找不到答案假设我有一个站点“mysite.com”。我可以通过键入“mysite.com”或“mysite.com/index.php”来访问索引页面。这工作正常......但是,当我尝试转到“mysite.com/index.php/”时,页面加载但不正确。究竟发生了什么?我认为它应该返回404错误,因为index.php将被视为(不存在的)目录(即我认为它会尝试查找“mysite.com/index.php/index.php”)。显然不是这样。有人可以告诉我到底发生了什么吗?当您在斜杠后放置任何内容时也是如此,即“mysite.com/index

PHP:通用化跨操作系统路径的好方法(斜杠方向)

我最关心的是能够处理跨操作系统的路径,主要是关于目录分隔符的反斜杠和正斜杠。我使用的是DIRECTORY_SEPARATOR,但是:写的很长路径可能来自不同的来源,不一定由您控制我目前正在使用:functionpth($path){$runningOnWindows=(strtoupper(substr(PHP_OS,0,3))==='WIN');$slash=$runningOnWindows?'\\':'/';$wrongSlash=$runningOnWindows?'/':'\\';return(str_replace($wrongSlash,$slash,$path));}只

php - 为什么 PHP DOM 不在自闭标签上包含斜杠?

我一直在使用PHP的DOM来加载一个html模板,修改它并输出它。最近我发现自闭合(空)标签不包含结束斜杠,即使模板文件包含。例如变成:这是错误或设置,还是文档类型问题? 最佳答案 DOMDocument->saveHTML()获取您的XMLDOM信息集并将其作为老式HTML而不是XML写出。你不应该使用saveHTML()连同XHTML文档类型,因为它的输出不是格式正确的XML。如果您使用saveXML()相反,您将获得正确的XHTML。如果你给它一个Content-Type:application/xhtml+xml就可以将这个

php - $document_root 上的 nginx 和尾部斜杠?

我对nginx使用以下配置:http://gist.github.com/340956但是,此配置会导致PHP出现Noinputfilespecified错误。我能够解决它的唯一方法是改变这一行:fastcgi_paramSCRIPT_FILENAME$document_root/$fastcgi_script_name;注意$document_root和$fastcgi_script_name之间的“/”。我被告知这是错误的配置,但没有人能够确切地告诉我为什么我的配置需要这个额外的斜线。我怎样才能去掉那个多余的斜杠? 最佳答案 刚