Вы видите разницу в числе параметров функции fopen, предложенной в примере и в том, что написали?
Вы научились сшивать строки в PHP?
Чувствуете разницу между "" и '', когда пытаетесь вставить внутрь строки переменную?
Вместо всех этих операций вы можете использовать функцию file_put_contents( $path, $data, LOCK_EX );. В вашем случае $path это $str2, а $data - $str. LOCK_EX блокирует файл на время записи