检查第一行和最后一行的关键字


Check for keyword in first and last line

我有以下字符串

-----BEGIN CERTIFICATE REQUEST-----
MIICtzCCAZ8CAQAwcjELMAkGA1UEBhMCQVUxETAPBgNVBAgMCFZpY3RvcmlhMRIw
EAYDVQQHDAlNZWxib3VybmUxDzANBgNVBAoMBk1LVEVTVDELMAkGA1UECwwCSVQx
HjAcBgNVBAMMFWRuc3Rlc3Q0LnNzbHRlY2hzLmNvbTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANRhwPJLWYTFS19kgWLs49wR1BR+qaeET26BHT4ZdmQi
iDKOFn1VzuBhv6bIWJpGrkBqM5oKkB6ckAjUlMKUNeCTiA0NAqvrAgM19GptzgIq
-----END CERTIFICATE REQUEST-----

我希望能够检查第一行和最后一行的单词"NEW",如果它缺失,那么它应该被添加进去。

结果应该是这样的:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIICtzCCAZ8CAQAwcjELMAkGA1UEBhMCQVUxETAPBgNVBAgMCFZpY3RvcmlhMRIw
EAYDVQQHDAlNZWxib3VybmUxDzANBgNVBAoMBk1LVEVTVDELMAkGA1UECwwCSVQx
HjAcBgNVBAMMFWRuc3Rlc3Q0LnNzbHRlY2hzLmNvbTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANRhwPJLWYTFS19kgWLs49wR1BR+qaeET26BHT4ZdmQi
iDKOFn1VzuBhv6bIWJpGrkBqM5oKkB6ckAjUlMKUNeCTiA0NAqvrAgM19GptzgIq
-----END NEW CERTIFICATE REQUEST-----

我用这个来检索第一行

$lines=explode("'n", $data);
echo $lines['0'];

您可以将BEGIN CERTIFICATE REQUEST替换为BEGIN NEW CERTIFICATE REQUEST

试试这个:

$string = str_replace(
  ['BEGIN CERTIFICATE REQUEST', 'END CERTIFICATE REQUEST'],
  ['BEGIN NEW CERTIFICATE REQUEST', 'END NEW CERTIFICATE REQUEST'],
  $string
);

您实际上不需要检查每一行是否有这样的内容。试试以下命令:

preg_replace("/(begin|end) certificate/i", "$1 NEW CERTIFICATE", $str);

try

if (strpos($string,'NEW') == false) {
    str_replace('CERTIFICATE', "NEW  CERTIFICATE", $string);
}