Trim a string purely to text, without leaving any whitespace in PHP? - php

I am having an image upload script, which works fine so far. It runs with jQuery fileupload. The PHP script generates a new name for the uploaded image and gives it out through exit($imgname);. Strangely I always get a response with many whitespaces like you can see in the picture.
To the screenshot:***
My whole website uses jQuery and I thought about using $.trim() to just trim the result to plain text, but I don't know if this is a great idea since I don't think that this works for any common browser.
Additional:
The most strange thing about this is, that it worked in the past just fine without any whitespaces. Today I uploaded something and suddenly it does something like this...
PHP:
$upload = $image->upload();
$imgname = $image->getName();
$imgmime = $image->getMime();
$fullimgname = $imgname . "." . $imgmime;
if($upload){
// POST TO DATABASE ETC.
exit($fullimgname);
}

The white paces may come from somewhere else in the PHP file...
Look for spaces that would be outside the <?php and ?> brackets.
Like this, for example:
// <-- 4 tabs on this line
<?php
$upload = $image->upload();
$imgname = $image->getName();
$imgmime = $image->getMime();
$fullimgname = $imgname . "." . $imgmime;
if($upload){
// POST TO DATABASE ETC.
exit($fullimgname);
}

Try to use regex, because it might consider full unicode charset, etc:
$imgname = preg_replace('/^\s+/u', "", $imgname);
Although it looks likeltrim() should be enough.

Related

Laravel - PDF: Cannot encode text from PDF to Text

I am trying to upload the PDF file and want to convert it from PDF to Text. Some of the files are able to convert and get the text from the PDF with charm but some of them having issues as shown in the screenshots. There are two different examples, (although it shows 3 but 2 are the same) The top one and the second one are the same which I think its not a properly encoded (not sure) and the third one, it only captures the half info from the PDF. The main content that I need is after it stops.
How can I fix this?
use App\FilePdf;
use Spatie\PdfToText\Pdf;
$name=$file->getClientOriginalName();
$file->move(public_path().'/pdftotext/', $name);
$path = public_path('/pdftotext/'. $name);
$reader = new \Asika\Pdf2text;
$output = $reader->decode($path);
$data[] = $name;
$output = str_replace(array("\n", "\r"), '', trim($output));
dd($output);
Or if there is any alternate solution for this problem, please suggest.
Thanks and appreciate for your time.
use below function to get the string of pdf file
use Spatie\PdfToText\Pdf;
$pdf_string = Pdf::getText(public_path() . "/<foldername>/<pdffilename>);

Converting a PNG to GIF using PHP

This should be fairly simple (given the tools on hand) but there's something I'm completely overlooking..
I'm trying to convert a PNG as a base64 URL to a GIF87a or a GIF89a GIF using PHP.
I've got a small piece of code that goes like this:
$img = "data:image/png;base64,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";
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$dataTwo = imagegif($data);
$file = 'img/' . uniqid() . '.gif';
$success = file_put_contents($file, $dataTwo);
print $success ? $file : 'Unable to save the file.';
But whenever I run it, I get an error that says Warning: imagegif() expects parameter 1 to be resource, string given and of course my if fails and spits out 'Unable to save the file'.
The data URL is valid. I've checked.
I think I need to create $data as an image first before $imagegif will process it but I don't know how to do that.. I'm still shaky on handling objects.. I tried to search the PHP wiki but I became even more confused and now I have a headache..
I have two questions that follow:
what did I do wrong / please tell me what it wants me to give it and how..
once I have it actually working, when PHP converts the file, will it overwrite the header to GIF87a or GIF89a? I require one of these to specifically be in the header of the GIF file.
Thank you in advance for any advice you can provide.
The function you want to use is indeed imagecreatefromstring.
It will recognize the image type by parsing the data.
You can then use the resource returned as parameter to the imagegif function.
As previously pointed out, you need imagecreatefromstring from the GD library. The conversion is then quite straight forward:-
$img = imagecreatefromstring(base64_decode("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"));
imagegif($img, 'test.gif');
Or to match your code:-
$input = "data:image/png;base64,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";
list(, $imgData) = explode(',', $input);
$img = imagecreatefromstring(base64_decode($imgData));
imagegif($img, 'test.gif');
And to answer your second point, opening test.gif in notepad++ showed GIF87a in the header.

PHP fopen("filename", w) creates files with ~1

I am trying to write a file in PHP. So far it works "kind of".
I have an array of names in the format {Rob, Kevin, Michael}. I use the line of code
foreach($Team as $user)
{
print_r($user);
//create a file for each user
$file = fopen("./employee_lists/".$user, 'w');
//I have also tried: fopen("employee_lists/$user", 'w');
// ... ... ...
//write some data to each file.
}
This works as expected: The print_r shows "Rob Kevin Michael", however, the filenames are saved are as follows: ROB~1, KEVIN~1, MICHAE~1
When I'm going on to use these files later in my code, and I want to relate the usernames of "Rob" to ROB~1, I'll have to take some extra step to do this. I feel like I'm using fopen incorrectly, but it does exactly what I want minus this little naming scheme issue.
It seems like your $user variable contains an invalid character for file system paths (my best guess would be a new line).
Try:
$file = fopen("./employee_lists/".trim($user), 'w');
You should sanitize $user before using it a as file name.
$pattern = '/(;|\||`|>|<|&|^|"|'."\n|\r|'".'|{|}|[|]|\)|\()/i';
// no piping, passing possible environment variables ($),
// seperate commands, nested execution, file redirection,
// background processing, special commands (backspace, etc.), quotes
// newlines, or some other special characters
$user= preg_replace($pattern, '', $user);
$user= '"'.preg_replace('/\$/', '\\\$', $user).'"'; //make sure this is only interpreted as ONE argument
By the way, it's a bad idea using an user name for a file name. It's better to use a numeric id.

Generating different content when creating picture on different machines

I want to create a picture from a passed binary string:
$fileName = uniqid().".".$imgType;
$fileName = "../tmp/".$fileName;
$f = fopen($fileName,'wb');
$picture = mb_convert_encoding($picture, "UUENCODE", "UTF-8");
fwrite($f, $picture);
fclose($f);
This works quite well on one machine with PHP 5.3.10-1ubuntu3.4. The picture is created properly. If try it on a different machine with PHP 5.3.19 the output is very strange. E.g. if you open the file with less then you will find \0 instead of desired ^# characters.
Why does this happen?
The binary string is part of a post request from a website using HTML5 Formdata encoded in both cases with UTF-8.
$picture = convert_uudecode($picture);

Php function to remove spaces from uploaded photo

I am using Jquery uploader to upload images to my website. It uses a file called uploadhandler.php to manipulate the files. Inside the uploadhandler.php is the following function which appears to make changes to how the filename is formatted etc.
The problem I am having is if I upload a file with spaces in the file name it doesn't appear to be removing the spaces in the file name. Does anyone know how I can edit it to add an extra command to remove any spaces in the file name, or point me in the right direction on how to do it ?.
protected function trim_file_name($name, $type, $index, $content_range) {
// Remove path information and dots around the filename, to prevent uploading
// into different directories or replacing hidden system files.
// Also remove control characters and spaces (\x00..\x20) around the filename:
$file_name = trim(basename(stripslashes($name)), ".\x00..\x20");
// Add missing file extension for known image types:
if (strpos($file_name, '.') === false &&
preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) {
$file_name .= '.'.$matches[1];
}
while(is_dir($this->get_upload_path($file_name))) {
$file_name = $this->upcount_name($file_name);
}
$uploaded_bytes = $this->fix_integer_overflow(intval($content_range[1]));
while(is_file($this->get_upload_path($file_name))) {
if ($uploaded_bytes === $this->get_file_size(
$this->get_upload_path($file_name))) {
break;
}
$file_name = $this->upcount_name($file_name);
}
return $file_name;
}
The line:
$file_name = trim(basename(stripslashes($name)), ".\x00..\x20");
Will remove spaces "around" the filename, such as "foo " because of the x20 bit which is a space. You could simply add directly after this line:
$file_name = str_replace(" ", "", $file_name);
Easy as that! Also remember, when you use the 2nd parameter in trim() you remove the "default" list of characters listed in the manual ( http://php.net/trim ) and replace it with your own ...
I would also point out, I would never use the filename as given by the browser in $_FILES[$x]['name'] ... It simply opens too many questions and possibilities up. One technique to avoid the issue altogether might be to simply use the md5() or sha1() or similar of the file's contents, example:
$file_name = md5_file($_FILES['your_file_tag_name']['tmp_name']);
That way in theory, you never ever have spaces in the files, or "dirty" filenames ... And in addition, if a user uploads two files with the precise same contents, you simply need to check for the file's existance, and if it already exists, you already have that exact same file. Hope this helps, this all assumes you're doing file uploads, which I'm not 100% certain you are.

Categories