我有以下字符串
-----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'];
答案 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);
}