Comments (1)
::withRequestTarget()
if (preg_match('#\s#', $requestTarget)) {
...
What if my path contains not ASCII characters?
Probably, the URI class must have public methods encode
and decode
?
Moreover, the PSR-7 almost directly talking about it:
Users can provide both encoded and decoded path characters.
That is, if the user wants to decode the string - there are decoding method.
If we need to encode a string (eg, target) - there is an encoding method.
I think that something like this:
public static function encode($value, $ignore = null)
{
if (null === $ignore) {
$ignore = static::CHAR_UNRESERVED
. static::CHAR_GEN_DELIMS
. static::CHAR_SUB_DELIMS;
}
$rawurlencode = function (array $matches) {
return rawurlencode($matches[0]);
};
return preg_replace_callback(
'/(?:[^' . $ignore . '%]+|%(?![A-Fa-f0-9]{2}))/',
$rawurlencode,
$value
);
}
/**
* Decode URI-encoded strings.
*
* @param string $value The encoded string
*
* @return string The decoded string
*/
public static function decode($value)
{
return rawurldecode($value);
}
Or even easier
protected function setTarget($target)
{
if ('*' == $target) {
$this->target = $target;
return $this;
}
$uri = new Uri($target);
$this->target = (string) $uri;
return $this;
}
Originally posted by @easy-system at zendframework/zend-diactoros#153 (comment)
from laminas-diactoros.
Related Issues (20)
- Dependency Dashboard
- Multiple use of the UploadedFile object in PHPUnit test cases with the same file results in errors - File is consumed HOT 2
- `UploadedFile::moveTo()` doesn't remove the original file when used in CLI context and keep grab the handle. HOT 1
- `FilterUsingXForwardedHeaders` should correctly deal with `<host>:<port>` pair in `X-FORWARDED-HOST` header HOT 9
- [RFC]: Allow better constraint handling for PHP HOT 2
- Could ServerRequestFactory::marshallUriFromSapi() be made public? HOT 4
- Update to PSR-7 1.1/2.0 HOT 2
- Remove image stream compatibility from `Stream`
- CVE-2023-29530: Fix For PHP 7.4 HOT 16
- CLI command to register diactoros as pinned for `php-http/discovery`
- Drop deprecated function marshalUriFromSapi
- PhpInputStream::getContent() inconsistency HOT 9
- RFC: Read php input stream content into php temp stream to allow all stream features in PhpInputStream HOT 1
- Numeric header names handling in PSR-7 message objects
- V3 getBody()->getContents() no longer returns full stream on second call HOT 3
- `composer.json` provides non-existing versions of `psr/http-factory`
- security vonerability HOT 1
- Plus signs in cookie data get converted to space.
- Build is failing because of an update of the iata status code phrases
- Multipart Stream Factory HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laminas-diactoros.