Jump to content

Why "Uninitialized string offset: " ?


pstein

Recommended Posts

In a function of a php script there is the following code line:

 

function convert_mails($source_path, $mail_file = '') {

  global $output_path;

  print "sp=$source_path";

  // -- parameters must have a trailing backslash --

  if ($source_path[strlen($source_path)] != '\\') $source_path .= '\\';

  ...

 

 

When running it yields the following error:

 

sp=D:\storage\AABB.ACT\Archi0.FLD;

Notice: Uninitialized string offset: 35 in D:\WAMP\www\test.php on line 67

 

where line 67 is the line with the "if" statement.

 

So why and where is there an uninitialized string offset?

How can I repair the code?

Peter

Link to comment
https://forums.phpfreaks.com/topic/260498-why-uninitialized-string-offset/
Share on other sites

The last character of a string is at index strlen($string)-1, not strlen($string).

 

function convert_mails($source_path, $mail_file = '') {
   global $output_path;
   print "sp=$source_path";
   // -- parameters must have a trailing backslash --
   $last = strlen($source_path)-1;
   if ($source_path[$last] != '\\') $source_path .= '\\';
  ...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.