Definitely would have known. Let me explain it with a very simple story.
Imagine that today, right now, I'm telling you a story which happened at a specific moment in the past. The story goes:
I remember when I was working as a web developer. It was an easy job from the beginning, but later, as I started developing more difficult applications, I had to work with John. I still remember how I met him. John had come to my office one day to offer his help and his timing was just right.
Notice the use of had come: because he came to my office already before the time the story is taking place at, therefore he had come even further in the past.
OK, let's go on.
This one time, we were working a huge project together. The client was very serious about the job and we were supposed to complete the task in a very short time period. Unfortunately, we failed, because John wasn't skilled in PHP enough and we were unable to code what we had to. If only John had coded PHP more, he would have known how to code what we were asked.
Again, had coded is talking about a point further in the past, before the story happened, and it resulted in John not knowing what he needed to. Therefore, we wish that he would have known - but he didn't.
Imagine we have a time machine and we travel back to the past, exactly to the point when we're coding and finishing the project and I'm talking to John:
"John, I think we won't be able to finish this one. The PHP is too difficult for us both. If only you had more experience with this language, you would know how to finish it, but I believe you don't.
Notice the use of would know.
EDIT: To draw a conclusion:
If the result of a certain event/condition (if ...) reflects the present and matters right now, you use would know, but if it reflects only the past and mattered only then, you use would have known.
The final conclusion:
If I had coded PHP more, I would have known it better when I was offered the job, but it doesn't matter anymore, as I'm retired.
If I had coded PHP more, I would know it better, but I don't, so I cannot take the job, although I'd like to. I need to find something else now.
Therefore, both are correct, it only depends on what you are trying to say.