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

时间:2015-08-10 15:18:55

标签: php

我有以下字符串

-----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'];

3 个答案:

答案 0 :(得分:2)

你真的不需要检查每一行是否有这样的事情。请尝试以下方法:

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

答案 1 :(得分:2)

您可以将 BEGIN CERTIFICATE REQUEST 替换为开始新证书请求,而不是进行检查。

试试这个:

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

答案 2 :(得分:1)

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