草庐IT

consider_all_requests_local

全部标签

php - 如何从 Laravel 正确模拟 Illuminate\Http\Request 类

我正在尝试测试一个类中的一个方法,该类包含一个使用Laravel的request()助手的方法。这是方法:类别类publicfunctiongetCanonicalUrl(){returnpreg_match('/\/sale\/./',request()->getRequestUri())?'':url($this->getUrlKey());}测试应该使这个帮助程序在执行getRequestUri()时正确捕获URI,但它实际上返回一个空字符串。这是我对测试进行的一千次尝试之一。测试publicfunctiontestCanonical(){//...$requestMock=Mo

PHP preg_match_all 正则表达式从 css 获取像素值( "px")

我正在寻找与PHP的preg_match_all()函数一起使用的正则表达式,它将为我提供CSS文件中的所有px值。例如,如果使用下面的css,那么预期结果将是一个数组:array("11px","0.45px","11.0005px","1.1px","888.888px")$pattern字符串是我目前所拥有的——但是它似乎没有用。我尝试使用的逻辑是:小数点前最多4位,小数点符号可选,小数点后可选,最多4位,后面跟“px”。$pattern="/([0-9]{1,4}\.*[0-9]{1,4}*px)/";$css='.some_class{font-size:11px;margi

php - 为什么要修改 REQUEST_URI?

当我在req.php中运行以下代码时:要求:curl"http://localhost/req.php/postcode/14482/city/./country/de/"我收到这样的回复:Request:/req.php/postcode/14482/city/country/de/当我在/city之后使用两个点时:Request:/req.php/postcode/14482/country/de/在/city之后加上三个点:Request:/req.php/postcode/14482/city/.../country/de/为什么REQUEST_URI被修改而不是原封不动地传递

php - 如何使用 preg_match_all 从字符串中检索三个参数?

我试图从文本中获取所有出现的代码片段和3个参数。我使用正则表达式和preg_match_allPHP函数来执行此操作。如果我在文本中只出现一次该片段,则效果很好。如果有两个或更多,我会得到一个奇怪的结果。我不是很擅长正则表达式,所以我很难理解我错过了什么。函数publicfunctiongetGallerySnippetOccurrences($text){$ptn='/{#+gallery+(src|width|height)=\[(.*)\]+(src|width|height)=\[(.*)\]+(src|width|height)=\[(.*)\]+#}/';if(preg_m

php - 验证失败后 FormRequest 不填充 $request->old()

当表单验证失败时,我的请求对象没有接收到old()数据。我收到了错误消息,但没有收到任何旧的输入数据。我已经阅读了一些关于类似问题的解决方案,这些解决方案引用了对Controller上的重定向进行更改,但这并不能解决这个问题,因为重定向是由FormRequest类中下面引用的函数而不是Controller完成的.有没有人遇到过同样的问题?当我阅读一些引用现有错误的论坛时,我已经升级了我的实例,但问题仍然存在。如有任何帮助,我们将不胜感激。版本:我已经在laravel5.4、5.7和5.8上试过了,它们都没有渲染旧数据。我如何进行请求验证验证是通过扩展FormRequest的标准请求文件

PHP preg_match_all 在长字符串上失败

这是我的代码:$long=str_repeat('averylongstringtext',100);//trychanging100to5000$str=ashortstringtext$longSTR;preg_match_all('@([^]+)@sU',$str,$matched);print_r($matched);它完全按预期工作。但是,在你将100次重复更改为5000次之后,运行print_r($matched);而且您只会得到短字符串出现的结果。我的问题是如何使preg_match或preg_match_all处理大字符串文本(大至1MB或更大)?

php - CodeIgniter "The page you requested was not found."错误?

我在使用CodeIgniter时遇到问题。我已经检查了互联网上所有可能的解决方案,但似乎对我的情况没有任何帮助。我不是专业人士,这是我第一次使用CodeIgniter,所以不要对我太苛刻。路由.php:$route['default_controller']="page";$route['404_override']='';$route['(:num)']="page/index/$1";页面.php:load->model('Image','',TRUE);$this->load->model('Banner','',TRUE);$image=$this->Image->getIma

php - request_terminate_timeout 是否会覆盖 max_execution_time?

PHP-FPM池定义中的request_terminate_timeout是否会覆盖php.ini文件中的max_execution_time? 最佳答案 显然他们都在不同的层次上做同样的事情。max_execution_time由PHP本身提供,request_terminate_timeout由FPM进程控制机制处理。因此,无论哪个设置为最低值,都将首先启动。Apache还具有它观察到的空闲超时参数,并会在该时间后放弃PHP进程。还有maximumexecutiontimeisnotaffectedbysystemcalls,s

javascript - HTTP_X_REQUESTED_WITH 在 Firefox 4 中无法正常工作

我正在使用此代码重定向我的用户,从他们的浏览器中阻止仅使用ajax的页面if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])&&strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest'){}else{header("Location:/");}它在Googlechrome、Firefox26和IE11上运行良好,但在firefox4中,即使在使用ajax加载时也会触发header。我该如何解决这个问题? 最佳答案 您可以尝试自己设

php - preg_match_all - 在字符串中查找完整 url 的正则表达式

我花了4个多小时试图找到我的php代码的正则表达式模式,但运气不佳。我有一个带有html代码的字符串。它有很多url格式,例如:example.comhttp://example.comhttp://www.example.comhttp://example.com/some.phphttp://example.com/some.php?var1=1http://example.com/some.php?var1=1&var2=2etc.我有以下部分工作的php代码:preg_match_all('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[