Solution to the problem that spaces cannot be removed in php: 1. Use a hexadecimal editor to view the bytes; 2. Add the u parameter to "regex-pattern"; 3. Use "str_replace(' ', ' ', $fieldname);" can be used to replace spaces.
The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.
php What should I do if the spaces cannot be removed?
I get a PHP string and I need to remove spaces. I used the following code but when I echo $classname it only displays the string which still contains spaces.
$fieldname = the_sub_field('venue_title'); $classname = str_replace(' ', '', $fieldname); echo $classname;
Use a hex editor to view the bytes, if the spaces in the HEX are not 20 then it is not "normal" spaces. You can convert to HEX using a simple function in PHP.
Possible duplicate of removing spaces inside variables in PHP
Try adding the u parameter to regex-pattern since strings can have UTF-8 encoding:
$classname = preg_replace('/\s+/u', '', $fieldname);
Wow. Thank you so much! help!
This is the only thing that works for me
Same here. Strings are recovered from WordPress meta fields. Saved in admin panel, after "copy-pasting" from old site, using different encoding...
If you know that the white space is caused by whitespace only, you can use:
$classname = str_replace(' ','',$fieldname );
But if it might be due to spaces, you can use:
$classname = preg_replace('/\s+/','',$fieldname )
Try using \s instead of \h to get horizontal spaces, this will preserve newlines if needed.
The problem may be that the character is not a space, but another whitespace character.
Try
$classname = preg_replace('/\s/', '', $fieldname);
Use trim like this
TRIM($fieldname);
EDIT:
preg_replace('/\s+/', '', $fieldname);
trim() will only remove spaces from the beginning and end of the string
'trim()' only trims at the beginning or end of the string. In Paul's example, whitespace characters may be in the string.
The problem is the field it's pulling, not the rest of PHP. 'the_sub_field('venue_title')' extracts the field from the wordpress plugin 'Advanced Custom Fields', but this function is used to display the data instead of just retrieving it. Instead, I use get_sub_field('venue_title') and it works. Cheers for this help
This is the correct answer to this threat, it needs to be flagged
It could be that the space is not really space, but some other form of white space.
You may want to try:
$classname = preg_replace('/\s+/', '', $fieldname);
From here.
Try replacing horizontal spaces with \h, this will preserve newlines if needed.
$fieldname ="I am 21 Years Old"; $classname = str_replace(' ', '', $fieldname); echo $classname; ?>
This works perfectly.
Check the return value via this function: the_sub_field('venue_title');
I think the problem is that the string is not treated as a string. It requires " on either side. How would you do this in PHP? For example $fieldname="'".the_sub_field('venue_title')."'";
Use "".the_sub_field('venue_title') ')." or " the_sub_field('venue_title') "
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What to do if spaces cannot be removed in php. For more information, please follow other related articles on the PHP Chinese website!