SoapServer/Client now handle binary files correctly & large tests/fixtures update
Soap Server and Client were breaking binary files during transfer due to invalid Mime Message Parser. Now is it working fine with no errors, but the message parser is about to be rewritten into a better form.
This commit is contained in:
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace BeSimple\SoapCommon\Mime\Boundary;
|
||||
|
||||
class MimeBoundaryAnalyser
|
||||
{
|
||||
/**
|
||||
* @param string[] $mimeMessageLines
|
||||
* @return bool
|
||||
*/
|
||||
public static function hasMessageBoundary(array $mimeMessageLines)
|
||||
{
|
||||
foreach ($mimeMessageLines as $mimeMessageLine) {
|
||||
if (self::isMessageLineBoundary($mimeMessageLine)) {
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $mimeMessageLine
|
||||
* @return bool
|
||||
*/
|
||||
public static function isMessageLineBoundary($mimeMessageLine)
|
||||
{
|
||||
return strlen($mimeMessageLine) > 0 && $mimeMessageLine[0] === "-";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $mimeMessageLine
|
||||
* @param string $mimeTypeBoundary
|
||||
* @return bool
|
||||
*/
|
||||
public static function isMessageLineMiddleBoundary($mimeMessageLine, $mimeTypeBoundary)
|
||||
{
|
||||
return strcmp(trim($mimeMessageLine), '--'.$mimeTypeBoundary) === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $mimeMessageLine
|
||||
* @param string $mimeTypeBoundary
|
||||
* @return bool
|
||||
*/
|
||||
public static function isMessageLineLastBoundary($mimeMessageLine, $mimeTypeBoundary)
|
||||
{
|
||||
return strcmp(trim($mimeMessageLine), '--'.$mimeTypeBoundary.'--') === 0;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user